16 Nisan 2017 Pazar

Coreboot ethernet kartı problemi çözümü

Merhabalar,

    Önceki yazımda coreboot'un nasıl yükleneceğini anlatmıştım. Sürücüsü özgür olmayan kablosuz ağ kartının sorunsuz çalışmasına rağmen ethernet kartı çalışmıyordu bu konuda araştırma yapıp bu yazıyı yazma kararı aldım. Problemin nedeni bios'u içinde tuttuğumuz rom bellekte bios yazılımı haricinde bazı aygıtların fiziksel adresleride bulunmakta ve ethernet bu aygıtlardan birisi. Coreboot'u yüklediğinizde bu adımları yapmazsanız ethernet kartınız çalışmayacaktır.

    İlk olarak ethernet kartımızın mac adresini bilgisayarın altındaki stickerdan öğrenip not edelim. 00:1F:16:XX:XX:XX şeklinde bir adres olduğunu göreceksiniz. Bulamıyorsanız XX yazan kısımları hexadecimal olarak doldurabilirsiniz.

    Daha sonra aşağıdaki linkteki dosyayı indirelim

http://mirror.linux.ro/libreboot/stable/20160907/libreboot_r20160907_util.tar.xz
 
    Dosyayı arşivden çıkarıp sırasıyla işlemleri uygulayalım

tar -xvf libreboot_r20160907_util.tar.xz

cd libreboot_r20160907_util/ich9deblob/x86_64/

./ich9gen --macaddress XX:XX:XX:XX:XX:XX (XX li kısımlara mac adresimiz gelecek)

ich9gen programı bir kaç dosya oluşturacak bunlardan sonu fdgbe ve rom boyutumuza uygun olan dosyayı kullanmamız gerekli, x200 bilgisayara yaptığım için rom boyutu 8m olmalı.

dd if=ich9fdgbe_8m.bin of=coreboot.rom bs=1 count=12k conv=notrunc (Coreboot.rom yazan yere rom dosyamızın ismi ve yolu gelecek)

    Bu işlemleri yaptıktan sonra fabrika çıkışlı bios romumuzun kalıbını almıştık hatırlarsanız şimdi aldığımız yedek üzerinden ethernet kartı ve diğer aygıtların fiziksel adresinin tutulduğu layout dosyasını çıkarmamız gerekiyor bunun için coreboot repository içindeki util/ifdtool klasörü altında bulunan programı kullanmamız gerekmekte

cd util/ifdtool

make

Önümüzde iki seçenek var
Şu anki coreboot rom'umuzu koruyarak layout dosyasını yazmak istiyorsak:

./ifdtool flash.bin --unlock

flashrom -p 'yourprogrammer' -w flash.bin.new -l layout -i fd (yourprogrammer kısmına internal veya linux_spi dan hangisini kullanıyorsanız onu yazmanız gerekmekte)

 Yeni bir rom yazmak istiyorsak:

./ifdtool flash.bin -f layout (flash.bin yazan kısıma kalıp dosyanız gelecek)

flashrom -p 'yourprogrammer' -w coreboot.rom -l layout -i bios

Bütün bunları yaptıktan sonra ethernet kartınız çalışmış olacaktır.











7 Mart 2017 Salı

Raspberry pi aracılığı ile Libreboot ve Coreboot Kurulumu

Merhabalar, Libreboot ve Coreboot'un neler olduğunu ve kendi bilgisayarımıza kurup nasıl derleyebileceğimizi önceki yazılarımda bulabilirsiniz. Bu yazımda x200 makinelere ve desteklenen diğer tüm makinelere nasıl Coreboot veya Libreboot kurulacağını anlatacağım. Yakın zamandada videolu bir kurulum yapmayı planlıyorum. IBM x60 makinelerdeki gibi bilgisayar açıkken ve üzerinde bir GNU/Linux dağıtımı koşarken kurulum yapılamadığı için x200 de ve diğer çoğu makinede kurması biraz zahmetli ve birkaç malzeme gerekiyor öncelikle bunları öğrenelim.

-Jumper kablo(10 cm veya daha kısa)

    Sinyallerin iletilebilmesi için 10 cm den kısa olması gerekmekte

-SOIC16 test clip (Bios Romunuz 8 bacaklı ise SOIC8 test clip)


    Bu ürünlerin türkiyede satışını bulamadık ve Ebayden 10$'a SOIC16 ve SOIC8 seti sipariş verdik. Pomona Electronics in 5252 modelini kullanabilirsiniz.

-Bir adet Kullanıma hazır Raspberry Pi

    Üzerinde GPIO pinlerinin olduğu herhangi bir Raspberry Pi işimizi görecektir.

İlk Önce Raspberry Pi kısmında yapılacakları yapalım:
/boot/config.txt dosyasına

dtparam=spi=on



satırını ekleyelim.

sudo modprobe spidev
sudo modprobe spi_bcm2835

modüllerini yükleyelim

sudo apt-get update && sudo apt-get dist-upgrade && reboot
sudo apt-get update && sudo apt-get install libftdi1 libftdi-dev libusb-dev libpci-dev subversion
 

paketlerini yükleyelim.

wget http://download.flashrom.org/releases/flashrom-0.9.9.tar.bz2
tar -xvf flashrom-0.9.9.tar.bz2
cd flashrom-0.9.9
make

flashrom paketini kuralım ve Pi'ımızı yeniden başlatalım.

Daha sonra x200 makinenin vidalarını söküp bios romuna ulaşalım. Kasanın altındaki klavye ve alt panelin simgesinin olduğu vidalar söküldükten sonra  klavye ve alt panel çok rahat çıkmakta. Bios rom'unun modelini üzerine bakıp öğrendikten sonra Soic test clip'i takalım ve Raspberry Pi ile arasındaki kablo bağlantısını aşağıdaki tablo yardımı ile kuralım.

1 ve 9 nolu pinleri birbirine bağlayıp Raspberryde 17 nolu pine takmamız gerekiyor. 2 tane 3.3v çıkışı olduğu için 1 ve 9 u 17 ye, 2 yi 1 e bağladım. Libreboot dökümanında yer verilmesede flashrom geliştiricileri sorunların çoğunun bundan kaynaklandığını söylemekte.
Bağlantıyı Raspberry Pi açıkken yaparsanız reset atacaktır, bağlantıyı Raspberry Pi kapalı iken yapıp daha sonra açmamız daha sağlıklı olacaktır.


       Pin Name     Raspberry Pi Pin
1 HOLD 17
2 3.3V 1
3 - -
4 - -
5 - -
6 - -
7 CS# 24
8 S0/SIO1 21
9 WP 17
10 GND 25
11 - -
12 - -
13 - -
14 - -
15 S1/SIO0 19
16 SCLK 23


Yardımcı olması için chiplerin data sheet'i:



Yani sağdan başlayıp u şeklinde numaralandırılıyor(Bizim tarafımızda sağdaki 1. pin iken soldaki 16. pin)





Makinemiz için olan rom'u Raspberry Pi'a atalım.
scp coreboot.rom pi@xx.xx.xx.xx:

Herhangi bir sorun olmasına karşı orjinal bios'u yedeklemekte fayda var.
 Flashrom programında hata alırsanız spispeed i düşürmeyi deneyin ve her ne kadar 8mb bir dosya olsada okuma yazma uzun sürmekte sabırlı olun.
sudo ./flashrom -c "MX25L6405" -p linux_spi:dev=/dev/spidev0.0,spispeed=512 -r fabrika.rom

sudo ./flashrom -c "MX25L6405" -p linux_spi:dev=/dev/spidev0.0,spispeed=512 -r fabrika2.rom

diff fabrika.rom fabrika2.rom
ile romların aynı olup olmadığına bakalım. Farklıysa işlemi tekrarlayalım.

Sıra geldi Libreboot veya Coreboot yüklemeye
sudo ./flashrom -c "MX25L6405" -p linux_spi:dev=/dev/spidev0.0,spispeed=512 -w coreboot.rom

"Erasing and writing flash chip... FAILED at 0x00601000! Expected=0xff, Found=0x72, failed byte count from 0x00600000-0x0060ffff: 0xec8d
ERASE FAILED!"

  gibi hatalar versede önemli olan en son

"Verifying flash... VERIFIED." yazmasıdır.
Verified yazmıyorsa işlemi tekrarlayınız kendi derlediğiniz romlarda hata olduğunu düşünüyorsanız libreboot'un hazır derlenmiş romları ile deneme yapabilirsiniz.

    Bilgisayarımızı açtığımızda büyük olasılıkla açılmayacaktır çünkü içinde bulunan wifi kartı özgür yazılım ile çalışmıyor. Bunun için wifi kartımızı Atheros AR9285/AR5B95 model bir kart ile değiştirmemiz veya wifi kartını çıkarıp wifi'ı sol taraftaki açma kapama düğmesinden kapatmalıyız. Bunları yapsak bile ilk rom yüklendikten sonra 3-4 kez açma kapama yapmak gerekti belkide sabırsızlığımdan kaynaklı bilemiyorum.
Not: Sistemi bir kez boot ettikten sonra wifi kartını taktım ve çalıştı

    Umarım bu yazım bioslarının arkalarından iş çevirmediğinden emin olmak isteyen tüm kullanıcıların işine yarar ve kurulum esnasında sorun yaşamazlar. Kurulum bayağı zorlu bir süreç hatasız yapmak imkansıza yakın gibi bir olasılık, eğer bir hata ile karşılaştıysanız seve seve yardımcı olmak isterim. Hoşçakalın...