Archive for the ‘software’ Category

Thinkpad ACPI a Madwifi

21.01.2009, 22:55

Tym razem zwięźle, technicznie, “dla potomności”.

Wpis dotyczy thinkpad-acpi, czyli w zasadzie niezbędnej dla posiadaczy Thinkpadów, z GNU/Linuksem na pokładzie, nakładki (patch) na kernel linuksowy. Przyjmuję, że jeżeli ktoś już tu trafił, to wie co to dokładnie jest. Jeśli nie: strona projektu/artykuł na ThinkWiki. Druga rzecz, to Madwifi, czyli sterowniki dla bezprzewodowych kart sieciowych opartych na chipsecie Atheros.

Wersje, których użyłem: Kernel GNU/Linuks 2.6.28, thinkpad-acpi 0.22_v2.6.28 oraz Madwifi v0.9.4.

Problem polega na tym, że po zaaplikowaniu patcha thinkpad-acpi pojawia się problem z kompilacją modułów ze sterownikami Madwifi:

cc1: warnings being treated as errors
/home/unit03/temp/madwifi-0.9.4/net80211/ieee80211_wireless.c: In function 'giwscan_cb':
/home/unit03/temp/madwifi-0.9.4/net80211/ieee80211_wireless.c:1593: warning: passing argument 1 of 'iwe_stream_add_event' from incompatible pointer type
/home/unit03/temp/madwifi-0.9.4/net80211/ieee80211_wireless.c:1593: warning: passing argument 3 of 'iwe_stream_add_event' from incompatible pointer type
/home/unit03/temp/madwifi-0.9.4/net80211/ieee80211_wireless.c:1593: warning: passing argument 4 of 'iwe_stream_add_event' makes pointer from integer without a cast
/home/unit03/temp/madwifi-0.9.4/net80211/ieee80211_wireless.c:1593: error: too few arguments to function 'iwe_stream_add_event'
/home/unit03/temp/madwifi-0.9.4/net80211/ieee80211_wireless.c:1607: warning: passing argument 1 of 'iwe_stream_add_point' from incompatible pointer type
/home/unit03/temp/madwifi-0.9.4/net80211/ieee80211_wireless.c:1607: warning: passing argument 3 of 'iwe_stream_add_point' from incompatible pointer type
/home/unit03/temp/madwifi-0.9.4/net80211/ieee80211_wireless.c:1607: warning: passing argument 4 of 'iwe_stream_add_point' from incompatible pointer type
...

Jest to spowodowane zmianą implementacji funkcji, o których mówią komunikaty powyżej.

Rozwiązanie problemu jest w zasadzie proste (z punktu widzenia programisty), ale wymaga zmian w kodzie źródłowym Madwifi. Opis “błędu” (o tym dlaczego w cudzysłowie, za chwilę) znajduje się w TRACu Madwifi pod numerem #2220. To, co trzeba zrobić, to zaaplikowanie umieszczonego tam patcha. Dla mniej obeznanych z aplikowaniem łatek, plikami diff, “ręczna naprawa”: w ulubionym edytorze otwieramy plik net80211/ieee80211_wireless.c, znajdujemy linię 1552:

struct iwscanreq { /* XXX: right place for this declaration? */

i zaraz po niej dodajemy

struct iw_request_info *info;

Następnie, po linii 1565:

char *current_ev = req->current_ev;

dodajemy

struct iw_request_info *info = req->info;

Następnie, znajdujemy wszystkie wystąpienia funkcji iwe_stream_add_event() oraz iwe_stream_add_point(), i zaraz po pierwszym nawiasie dopisujemy wszędzie “info, “. Np., linia 1595:

current_ev = iwe_stream_add_event(current_ev, end_buf, &iwe, IW_EV_ADDR_LEN);

po naszej zmianie powinna wyglądać tak (pogrubiłem to, co zostało dodane):

current_ev = iwe_stream_add_event(info, current_ev, end_buf, &iwe, IW_EV_ADDR_LEN);

Taka sama sytuacja występuje w liniach 1608, 1612, 1626, 1639, 1650, 1665, 1680, 1689, 1709, 1733, 1759, 1778 i 1796.

Dlaczego nie jest to tak naprawdę błąd w ścisłym znaczeniu tego słowa? Błędy kompilacji spowodowało zaaplikowanie patcha thinkpad-acpi, a więc coś, czego używają tylko posiadacze Thinkpadów, ale żeby programiści Madwifi mogli im zapobiec, musieliby z każdą wersją wypuszczać oddzielne źródła przystosowane do ww. patcha. Wg mnie najlepiej, gdyby gdzieś na stronie o tym wspomnieli i udostępniali naprawdę prosty skrypt patchujący.

Jest jeszcze inny “błąd”, który możemy sami poprawić. Jeżeli przy kompilacji Madwifi dostaniemy taki komunikat:

/home/unit03/temp/madwifi-0.9.4/net80211/ieee80211_power.c: In function 'ieee80211_pwrsave':
/home/unit03/temp/madwifi-0.9.4/net80211/ieee80211_power.c:240: error: implicit declaration of function '__skb_append'
make[3]: *** [/home/unit03/temp/madwifi-0.9.4/net80211/ieee80211_power.o] Error 1
make[2]: *** [/home/unit03/temp/madwifi-0.9.4/net80211] Error 2
make[1]: *** [_module_/home/unit03/temp/madwifi-0.9.4] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.28'
make: *** [modules] Error 2

w pliku net80211/ieee80211_linux.h po linii 243:

#define __skb_append(a,b,c) __skb_append(a, b)

dopisujemy

#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25)
#define __skb_append(a,b,c) __skb_queue_after(c, a, b)

źródło: Madwifi, rewizja 3602.

forum.slackware.pl znowu on-line

15.02.2008, 0:17

Do sieci, po ok. trzech tygodniach nieobecności związanej z awarią serwera powróciło największe forum dyskusyjne poświęcone Linuksowi Slackware.

W międzyczasie zdążyło powstać nowe forum, jednak wyraźnie widać, że mimo reklamy na jakilinux.org nie zdobyło większej popularności. Administracja forum.slackware.pl na przyszły tego typu problem, postara się być bardziej przygotowana.

Forum to chyba największe polskie community zgromadzone wokół dystrybucji Linux Slackware, ogromna baza wiedzy i doświadczonych użytkowników tej wspaniałej dystrybucji. :)

“Ja bym sobie założyl, ale nikt ze znajomych nie używa”

12.11.2007, 20:26

Streszczę się, bo temat został niemal wyczerpany. Z drugiej strony, może jedna notka ma szanse wnieść jakikolwiek wkład w sprawę, dlatego piszę:

Cytat z opisu (bezimienny właściwie, bo to zdanie wielu osób) to jeden z głównych powodów przywiązania do GG i jednocześnie problem takich protokołów jak Jabber. Problem w zdobyciu popularności mimo wielu zalet, tak samego protokołu, jak i otoczki technologicznej i, jakby nie patrzeć, filozoficznej (jest przedstawicielem otwartego oprogramowania). Nie, nie twierdzę że jest idealny, nic nie jest. Ostatnio choćby u Tristana widziałem notkę o wadach Jabbera. Sumując jednak te wady i zalety jestem stanowczo za Jabberem.

Jak dla mnie powód niby słuszny, a jednak nieco absurdalny. Ileż to już widziałem bluzgów w opisach po kolejnym padzie serwerów GG, w których ludzie psioczą na to “$!@#% GG”. A jednak nadal używają, bo inni robią to samo. I też psioczą. A gdybyś tak Ty (tak, Ty, do Ciebie mówię!) spróbował i namówił kolejną osobę i nakłonił ją do tego samego, aby też namówiła kolejną…? Bo co, bo trudne? A photobloga, maila i grono, fotkę i kilka innych serwisów używa się łatwiej? Wątpię. A jednak do korzystania z tego typu usług potrafisz zaprosić. Paradoks?

Zaciekawiony? Wybierz Jabbera.

12.11.2007 19:11:34 :::: (gg:1029648) Połączenie zostało przerwane

Gmail Manager – małe a cieszy

31.10.2007, 21:25

Czas jakiś temu postanowiłem założyć nowego maila, oczywiście w GMailu. Wcześniej, aby stale wiedzieć czy coś nie przyszło, miałem zawsze pocztę otwartą na pierwszej karcie w Firefoksie. Na dwóch kontach naraz być zalogowanym się nie da, a nadal chciałem być na bieżąco z mailami, postanowiłem więc poszukać dobrego “powiadamiacza” o nieprzeczytanych wiadomościach. Znalazłem kilka, ale albo nie działały, albo wymagały dziwnych bibliotek graficznych (do wyświetlenia małego okienka, albo do ikonki w tray’u? wolne żarty), albo potrafiły sobie poradzić tylko z jednym kontem. Superkaramby przestałem używać (nie korzystam z pulpitu), więc też odpadała… I tak znalazłem to małe cudo ;-) , będące po prostu rozszerzeniem do Firefoksa: Gmail Manager
Czytaj dalej »