ChromiumOS + binarne sterowniki NVidia
06 grudnia 2009, 02:16:15Po ładnych kilku wieczorach "walki" udało mi się wreszcie zbudować ChromiumOS działający natywnie na moim T61. Przede wszystkim dorzuciłem binarne sterowniki NVidia, dzięki czemu działa Composite i te wszystkie EyeCandy w WM. Zmieniłem też podział na partycje, by system można było zmieścić na nośniku 1GB (700MB/rootfs i 250MB/partycja rw, brak swap zamiast 950MB/rw, 950MB/swap i 950MB/rootfs).
W związku ze zmniejszeniem rootfs wyleciał bootchart + zależności, zwalniając 180MB miejsca, natomiast przybył mój ulubiony edytor joe ;) W xorg.conf dodałem polski układ klawiatury.
Odświeżona została także przeglądarka chromium - przedwczorajszy build r33883
Ponadto został włączony użytkownik pozwalający na zalogowanie offline: testuser, hasło: qwerty - można dzięki temu pogrzebać trochę w systemie:
sudo mount / -o remount,rw
Skompresowany obraz dysku usb dostępny via torrent oraz http (175MB) - czywiście preferowany torrent :)
Ściągnięty obraz można zapisać na pendrive (w tym przypadku /dev/sdb) za pomocą:
bzcat usb.img.bz2 > /dev/sdb
Tagi: chromiumos chromeos chromium chrome google nvidia T61
06 grudnia 2009 o 19:05:59
Czy binarne sterowniki od NVIDIA nie wymagają zgody na redystrybucję?
06 grudnia 2009 o 20:26:53
Licencja czyni wyjątek dla linuksa i pozwala na dystrybucję sterowników, lecz w nie zmienionej formie http://www.nvidia.com/content/DriverDownload-March2009/licence.php (punkt 2.1.2), przy czym dozwolone jest rozpakowanie archiwum. Utworzenie właściwego modułu linux'a (pliku nvidia.ko) polega na zlinkowaniu dostarczonego przez nvidię binarnego pliku nv-kernel.o z "pomostem" łączącym z aktualnie używanym kernelem - to faktycznie można potraktować jako modyfikację niezgodną z podanym wyżej punktem licencji. Ale właśie natchnąłeś mnie - zrobiłem doświadczenie i za pomocą narzędzia bsdiff utworzyłem binarnego diff'a pomiędzy dostarczanym przez nvidię plikiem nv-kernel.o (wielkość 10167008 bajtów) a gotowym, skompilowanym modułem nvidia.ko (wielkość 10236740 bajtów) - powstał plik zawierający różnice o wielkości 41935 bajtów, który mógłby być legalnie rozpowszechniany razem plikiem od nvidii nv-kernel.o. Moduł kernela mógłby być tworzony nawet w locie (bspatch potrafi nałożyć tak przygotowanego patcha i w resultacie dostaniemy identyczny plik nvidia.ko, bez konieczności jakiejkolwiek kompilacji)
Ale moim zdaniem statyczne linkowanie z binarnym plikiem nie jest modyfikacją tegoż pliku i nie ma potrzeby robić tak karkołomych operacji