Monday, 25 August 2008

Using a cellphone GPRS/EDGE/UMTS Internet connection through Bluetooth under Gentoo Linux

Before you start, make sure that:



  • you can browse the Internet from your cellphone (take note of the connection profile you use)

  • you have a working Bluetooth connection between your phone and the PC

  • the devices are paired for connecting without asking for confirmation

  • you have bluez-utils emerged with USE="old-daemons"

Configure a RFCOMM connection with the phone:



  • in /etc/conf.d/bluetooth set RFCOMM_ENABLE=true

  • use sdptool search DUN to find the device's Bluetooth hardware address and the channel on which the cellphone listens for RFCOMM, the scan will take some time

  • in /etc/bluetooth/rfcomm.conf add a new connection with the address and channel you just found:

#
# RFCOMM configuration file.
#

rfcomm0 {
# Automatically bind the device at startup
bind yes;

# Bluetooth address of the device
device XX:XX:XX:XX:XX:XX;

# RFCOMM channel for the connection
channel 4;

# Description of the connection
comment "Cellphone GPRS/UMTS DUN";
}

  • execute /etc/init.d/bluetooth restart, you should now have a /dev/rfcomm0 device available, and cat /dev/rfcomm0 should cause the PC to connect to the cellphone (cat will output nothing, just kill it with Crtl+C when you verify the connection works).


Kernel requirements: besides what is needed for Bluetooth, enable all options under Device Drivers / Network device support / PPP (point-to-point protocol) support. This only adds 16KB to the kernel size. Recompile, install, reboot with your new kernel (or if you really don't want to reboot, compile PPP as a module and modprobe it).


Emerge ppp with USE="dhcp". Create a network service with ln -s /etc/init.d/net /etc/init.d/net.ppp0. Configure it by creating /etc/conf.d/net.ppp0 with the following contents:


### GPRS/EDGE/UMTS configuration ###
config_ppp0=( "ppp" )
link_ppp0="/dev/rfcomm0"

pppd_ppp0=(
"noauth"
"debug"
"local"

"defaultroute"
"usepeerdns"

"lcp-echo-interval 15"
"lcp-echo-failure 3"

"lock"

"115200"
"crtscts"
)

chat_ppp0="
ABORT BUSY
ABORT ERROR
ABORT 'NO ANSWER'
ABORT 'NO CARRIER'
ABORT 'NO DIALTONE'
ABORT 'Invalid Login'
ABORT 'Login incorrect'
'' AT
TIMEOUT 5
OK 'ATH'
OK 'ATE1'
OK 'AT+CGDCONT=1,\"IP\",\"internet\"'
OK 'ATD*99#'
TIMEOUT 60
CONNECT ''
TIMEOUT 5
~--''
"
### end GPRS/EDGE/UMTS configuration ###

You'll need to replace "internet" with the name of the connection profile you use for your data transfer (this should be provided by your cellular operator - "internet" is what Plus GSM uses in Poland). Start the connection with /etc/init.d/net.ppp0 start and everything should work.


Software used:



  • sys-kernel/gentoo-sources-2.6.25-r7

  • sys-apps/openrc-0.2.5

  • sys-apps/baselayout-2.0.0

  • net-wireless/bluez-libs -3.36

  • net-wireless/bluez-utils-3.36 with USE="old-daemons"

  • net-dialup/ppp-2.4.4-r15 with USE="dhcp"


Hardware used:



  • Nokia N95 8GB

  • HP Pavilion built-in Bluetooth adapter


How-To based on articles:


Sunday, 6 July 2008

Wymiana procesora w laptopie

Jakiś czas temu otwarcie obudowy laptopa było dla mnie przerażające - na pewno coś zepsuję, pogubię śrubki i nie będzie działać. Od pierwszego udokumentowanego podejścia minęło już nieco czasu, zdążyłem się oswoić i nabrać śmiałości. Fotorelacja z wczorajszej zabawy - wymiany procesora w laptopie HP Compaq - jest do obejrzenia dla ciekawskich, ja mam jeszcze parę dodatkowych wskazówek:

  • Rozkręcając laptopa/notebooka/inny mały komputer miej pod ręką pastę termoprzewodzącą i jakąś niekłaczącą szmatkę/chusteczki. Nawet jeśli planujesz tylko zajrzeć do środka - część elementów może wykorzystywać zewnętrzną obudowę w charakterze radiatora, pastę termoprzewodzącą trzeba zawsze wymienić (dokładnie usunąć starą, zaaplikować cienką warstwę świeżej) jeśli się rozdzieli posmarowane nią elementy.
  • Oznaczaj/zapisuj skąd wykręciłeś niestandardowe śrubki). Oszczędza to potem sporo kombinowania. ;-)
  • Większość śrub trzymających obudowę będzie wkręcana od spodu, ale część znajduje się zawsze z wierzchu, pod klawiaturą lub przyciskami multimedialnymi. Sprawdź czy płytka z tymi przyciskami nie jest przykręcona zanim zaczniesz ją podważać. :-)
  • Górna część laptopa (wyświetlacz i klawiatura) połączona jest z płytą główną kilkoma taśmami. Wyglądają one na strasznie delikatne i trudne do wpięcia, na szczęście tak nie jest. Wystarczy je odpiąć (zatrzask jest zazwyczaj od strony płyty głównej) i wyciągnąć.
  • Jeśli coś wymieniałeś - sprawdź, czy komputer nadal się uruchamia przed zmontowaniem go z powrotem. Zazwyczaj da się to zrobić nawet bez klawiatury, a można sobie oszczędzić sporo zbędnej pracy.

Przy okazji - mam na sprzedaż 2 kości RAM do laptopa (DDR 333Mhz 256MB CL2.5) oraz procesor Intel Celeron M 330 1.4GHz.

Monday, 12 May 2008

Witamy w Chinach

Właśnie zobaczyłem mało przyjazny komunikat:


This video is not available in your country.

Cholera. Od kiedy YouTube cenzuruje filmy? W tym przypadku ("Nowy Hymn Radia Maryja / Rammstein") na 100% nie chodzi o ochronę praw autorskich - przy takich zarzutach zdejmują film, a ten przez proxy z Wielkiej Brytanii można obejrzeć.

Tuesday, 6 May 2008

Cholerne tłumaczenia...

Chyba czas odwołać się do mądrości kolektywu ;-) Mam problem ze znalezieniem dobrze brzmiących i jednoznaczych tłumaczeń dla "commit", "changeset" oraz "revision". Ma ktoś pomysły na sensowne tłumaczenia poniższych sformułowań? (teksty z polskiej wersji Redmine)



  • "The entry or revision was not found in the repository." (roboczo - "Obiekt lub wersja nie zostały znalezione w repozytorium.")

  • "Autofetch commits" (roboczo - "Automatyczne pobieranie zmian")

  • "Referencing keywords" (roboczo - "Słowa tworzące powiązania")

  • "Fixing keywords" (roboczo - "Słowa zmieniające status")

  • "revision, revisions, view revisions, latest revision" (roboczo - "wersja, wersje, pokaż wersje, najnowsza wersja" - jak to odróżnić od "version"?)

  • "Commits per month" (roboczo - "Zatwierdzenia według miesięcy")

  • "Commits per author" (roboczo - "Zatwierdzenia według autorów")

  • "Referencing and fixing issues in commit messages" (roboczo - "Odwołania do zagadnień w komentarzach zatwierdzeń")

  • "Associated revisions" (roboczo - "Skojarzone wersje")

  • "changeset, changesets" (roboczo - "zmiana, zmiany")

Sunday, 13 April 2008

Pstrykanie

pstrykanie babolami - ściana obok

Wywieszka w toalecie u mnie w pracy. Z kartką doklejoną poniżej oryginalnego apelu nie mam absolutnie nic wspólnego, to jakiś aspołeczny osobnik musiał dodać ;-)

Thursday, 27 March 2008

Zabawa z bootchart

Zainspirowany konkursem "kto szybciej" zacząłem kombinować z przyśpieszaniem startu mojego Gentoo. Udało mi się ściąć... 3 sekundy. Patentów wypróbowanych - całkiem sporo.


  • RC_PARALLEL_STARTUP="yes" - to są właśnie te uzyskane 3 sekundy (choć pamiętam, że z jakiegoś powodu, dawno temu, wyłączałem równoległe uruchamianie usług).

  • baselayout-2 - czas startu spadł o 30 sekund. Bardzo przyjemnie, choć wymagało ręcznego poprawiania błędów w skryptach startowych i nie potrafi wyłączyć komputera gdy ma problemy z odmontowaniem udziałów NFS (o dziwo, baselayout-1 zawsze sobie z tym radzi). Zrezygnowałem.

  • wyłączenie zbędnych usług - poleciało dhcp i distccd. Kolejne 10 sekund. Razem z poprawą z baselayout-2 miałoby to sens, ale samodzielnie - nie. Leniwy jestem, włączyłem z powrotem.

  • readahead-list - żadnej różnicy w mierzonym czasie, problemy z zależnościami pomiędzy skryptami w /etc/init.d/. Dziękuję.

  • squashfs + aufs - strasznie ryzykownie to wygląda, nie wypróbowałem.

  • "timeout 1" w grub.conf - bootchart tego nie mierzy, ale zawsze to nieco szybciej.

  • prelink - przy instalacji ebuild nie przechodzi własnych testów automatycznych. Nie.

  • LDFLAGS - pożyjemy, zobaczymy, ale tutaj raczej kolosalnej róznicy się nie spodziewam.

  • TuxOnIce, albo inaczej - hibernacja. Z nieznanych mi powodów czasem się nie wznawia. Jeśli się wznowi, to wyłącza monitor (EDIT: pomogło dodanie OnResume 99 /usr/bin/chvt 7 do /etc/hibernate/common.conf). Ale kiedy działa, to komputer startuje w 1/6 normalnego czasu. Nice. Przydało by się jakieś GUI.

Wednesday, 5 March 2008

Telefon. Z klapką.


Szukam nowego telefonu. Na liście wymagań:



Ktoś zna takowe urządzenie?


Thursday, 31 January 2008

Mój domowy serwer

Jest mały, szarozielony i nazywa się snotling.

komputer 49.99
snotling ~ # cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
model name : Pentium III (Katmai)
cpu MHz : 448.646
flags : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pat pse36 mmx fxsr sse
bogomips : 897.87
snotling ~ # uname -a
Linux snotling 2.6.23-gentoo-r6 #2 Thu Jan 31 13:14:15 CET 2008 i686 Pentium III (Katmai) GenuineIntel GNU/Linux

Dostała mu się jeszcze gigabitowa sieciówka, kontroler SATA, dysk 300GB i 512MB RAMu – ale to już inny paragon ;-) Tak wyglądał zaraz po przyniesieniu do domu:

snotling prosto ze sklepu

A tak po dołożeniu ulepszeń:

snotling z dodatkami

Wednesday, 30 January 2008

gg.chrome.pl

Korzysta ktoś może z transportu gg.chrome.pl? Jest jakiś powód, dla którego od wczoraj jestem bombardowany prośbami o autoryzację, których najwyraźniej nie da się zablokować?

Wednesday, 23 January 2008

It's not a bug, it's a feature

Oj wybredny jest parser zapytań w MySQL, wybredny. SUM (a) w SELECT jak najbardziej przechodzi, ale w CREATE VIEW xxx AS SELECT już nie. Przy tworzeniu perspektywy baza odmawia współpracy komunikatem "funkcja nazwatabeli.SUM nie istnieje". Chodzi o to, że spacja pomiędzy SUM a nawiasem otwierającym jest inaczej interpretowana przy zwykłym zapytaniu a inaczej przy tworzeniu perspektywy - w pierwszym przypadku parser zaczyna od szukania funkcji nazwatabeli.SUM a gdy jej nie znajdzie wywołuje zwykłe SUM, w drugim przypadku od razu zgłasza błąd.


Sporo nerwów można stracić też przez inny "feature". MySQL w nazwach baz danych i tabel pozwala na znaki '_' i '-' oprócz zwykłych alfanumerycznych - ale takich tabel nie da się już użyć przy odwołaniu do kilku baz w jednym zapytaniu, bo parser ich po prostu nie znajdzie.