piątek, 23 listopada 2012

Odczyt trasy z GPSport 245 z pomocą gpsbabel

Na rowerowe wyprawy zabieram ze sobą GPSport 245 - urządzenie będące licznikiem i loggerem trasy jednocześnie. Producent urządzenia zwyczajem większości producentów nie dostarczył programu, za pomocą którego można by odczytać ślad przejechanej trasy w systemie innym niż Microsoft Windows.
Szukając rozwiązania trafiłem na program obsługujący znaczną ilość loggerów i nawigacji GPS - gpsbabel. Program jest prosty w obsłudze, daje możliwość odczytu danych z urządzenia zarówno w trybie tekstowym jak i w trybie graficznym. Obsługa w trybie graficznym jest intuicyjna, więc nie będę opisywał, natomiast odczyt w trybie tekstowym z mojego urządzenia można uzyskać przez wydanie polecenia:
gpsbabel -t -i m241 -f /dev/ttyUSB0 \
-o kml,lines,points,floating,track,trackdata,labels \
-F out.kml
Nie ma jednak róży bez kolców. Program nie potrafi z poziomu zwykłego użytkownika podłączyć się z GPSport 245 podpiętym do USB. Ja radzę sobie z problemem odczytując dane z konta root lub - również z roota - nadając wszystkim uprawnienia do zapisu na /dev/ttyUSB0.
Program jest dostępny w standardowych repozytoriach Fedory, wystarczy więc:
yum install gpsbabel



środa, 14 listopada 2012

Budowanie modułów jądra z pakietów 'akmod-*'

W repozytorium RPM Fusion można znaleźć pakiety zawierające spaczkowane moduły jądra zawierające zamknięte sterowniki grafiki Nvidia i AMD (Catalyst) oraz pakiet ze sterownikami kart sieci bezprzewodowej szczególnie przydatny dla posiadaczy niektórych modeli kart Broadcom (np.BCM4312).
Instalacja pakietu "akmod" wymaga jego kompilacji. Jak się do tego zabrać? Najpierw należy zainstalować pakiet kernel-devel oraz kompilator.
yum install kernel-devel gcc

Następnie instalujemy moduł np.sterowniki kart bezprzewodowych Broadcom
yum install broadcom-wl akmod-wl

Po zainstalowaniu ww. pakietów oraz pakietów wybranych przez yum w celu rozwiązania zależności moduł jadra możemy zbudować i uruchomić kilka sposobów:
  • restartując komputer albo
  • wywołując polecenie:
    akmods --kernels `uname -r`
  • lub restartując odpowiednią usługę:
    systemctl restart akmods.service

    Analogicznie należy postępować z innymi pakietami "akmod" jak np.akmod-nvidia czy akmod-catalyst.

  • sobota, 10 listopada 2012

    Uruchomienie maszyny wirtualnej w VirtualBox z LiveCD nagranego na pendrive

    Do uruchomienia maszyny wirtualnej w VirtualBox z pendrive'a (lub innego napędu USB np.karty SD umieszczonej w czytniku) potrzebne będą:
  • Obraz LiveCD (obrazy Fedory można pobrać ze strony Projektu Fedora
  • program do nagrania pobranego obrazu LiveCD (Fedora dostarcza narzędzie graficzne działające na Linuksie i na Windows - LiveUSB Creator
  • no i oczywiście zainstalowany VirtualBox (dostępny w repozytoriach)
    Obrazu LiveCD nagranego na urządzenie z interfejsem USB nie można niestety uruchomić bezpośrednio. Aby to zrobić trzeba najpierw emulować wirtualny dysk twardy.
    Nie będę opisywał jak nagrać obraz LiveCD na pendrive czy inne urządzenie USB - podany wyżej program graficzny jest intuicyjny i prosty w obsłudze.

    Zakładam, że mamy już gotowe urządzenie USB z nagranym obrazem. Trzeba teraz sprawdzić jak urządzenie widziane jest w systemie. W tym celu podłączamy urządzenie (nie montujemy) i jako root sprawdzamy:
    [root@F17 ~]# fdisk -l

    [tu informacje o innych urządzeniach]

    Dysk /dev/sdc: 8011 MB, bajtów: 8011120640
    głowic: 247, sektorów/ścieżkę: 62, cylindrów: 1021, w sumie sektorów: 15646720
    Jednostka = sektorów, czyli 1 * 512 = 512 bajtów
    Rozmiar sektora (logiczny/fizyczny) w bajtach: 512 / 512
    Rozmiar we/wy (minimalny/optymalny) w bajtach: 512 / 512
    Identyfikator dysku: 0x000c6f43

    Urządzenie Rozruch Początek Koniec Bloków ID System
    /dev/sdc1 * 62 15635593 7817766 b W95 FAT32

    Jak widać pendrive widziany jest jako urządzenie /dev/sdc, możemy więc utworzyć wirtualny dysk twardy. Nadal jako root:
    [root@F17 ~]# VBoxManage internalcommands createrawvmdk -filename /<tu_ścieżka_do_pliku>/usb.vmdk -rawdisk /dev/sdc
    RAW host disk access VMDK file /data/vboxdisk/usb.vmdk created successfully.


    Ponieważ dalej będziemy działać na koncie zwykłego użytkownika, więc najpierw zmienimy uprawnienia do pliku VMDK, który utworzyliśmy:

    [root@F17 ~]# chown user:user /<tu_ścieżka_do_pliku>/usb.vmdk
    [root@F17 ~]# chmod 666 /<tu_ścieżka_do_pliku>/usb.vmdk

    Dodatkowo zmieniamy jeszcze uprawnienia do urządzenia:

    [root@F17 ~]# chmod 666 /dev/sdc

    Wylogowujemy się z root i teraz już jako zwykły użytkownik tworzymy nowa maszynę wirtualną i podłączamy do niej utworzony dysk.

    [user@F17 ~]$ VBoxManage createvm --register --name USB-TEST-FEDORA --ostype Fedora
    Virtual machine 'USB-TEST-FEDORA' is created and registered.
    UUID: ad97404f-2a8c-4219-ba50-fbf4341d1c08 Settings file: '/data/VirtualBox/USB-TEST-FEDORA/USB-TEST-FEDORA.vbox'

    W ten sposób utworzyliśmy maszynę wirtualną o nazwie USB-TEST-FEDORA. Teraz musimy podłączyć do niej dysk:

    [user@F17 ~]$ VBoxManage modifyvm "USB-TEST-FEDORA" --sata on --sataportcount 8 --sataport1 "/<tu_ścieżka_do_pliku>/usb.vmdk"

    Przed uruchomieniem maszyny zmieniamy jeszcze uprawnienia do urządzenia (jako root):

    [root@F17 ~]# chmod 666 /dev/sdc


    Oczywiście wszystkie powyższe czynności można wykonać z GUI VirtualBox. Przy tworzeniu nowej maszyny wirtualnej należy wybrać opcję "Use an existing virtual hard drive file" i wskazać plik usb.vmdk.

    I to w zasadzie wszystko:

    VBoxManage startvm USB-TEST-FEDORA


  • wtorek, 6 listopada 2012

    Komunikat "Cannot open font file True"

    Od jakiegoś czasu deweloperzy postanowili uraczyć nas w parametrach jądra wpisem SYSFONT=True. Skąd to i po co? Nie wiem, ale wiem, że przez to podczas startu systemu pokazuje się błąd "Cannot open font file True". Można temu zaradzić zamieniając w pliku /etc/default/grub w linii GRUB_CMDLINE_LINUX wpis "SYSFONT=True" tekstem "SYSFONT=latarcyrheb-sun16". Np.
    GRUB_TIMEOUT=5
    GRUB_DISTRIBUTOR="Fedora"
    GRUB_DEFAULT=saved
    GRUB_GFXPAYLOAD=keep
    GRUB_CMDLINE_LINUX="rd.md=0 rd.lvm=0 rd.dm=0 SYSFONT=latarcyrheb-sun16 KEYTABLE=pl2 rd.luks=0 LANG=pl_PL.UTF-8 quiet "

    Po tej zmianie trzeba jeszcze zainstalować zmieniony plik /boot/grub2/grub.cfg
    grub2-mkconfig -o /boot/grub2/grub.cfg

    Przy następnym starcie systemu błąd nie pojawi się.

    czwartek, 18 października 2012

    Zmiana menedżera logowania w Fedorze 17 i 18

    W Fedorze 18 domyślny login-manager można zmienić edytując plik /etc/systemd/system/display-manager.service. Zmieniamy wpis w sekcji [Service] wskazujący ścieżkę do menedżera, którego chcemy użyć
    #ExecStart=/usr/sbin/lightdm #lekki menedżer XFCE
    #ExecStart=/usr/sbin/lxdm #lekki menedżer LXDE
    #ExecStart=/usr/sbin/gdm #menedżer GNOME
    Oczywiście należy usunąć znak komentarza w linii z wybranym menedżerem. No i trzeba menedżer zainstalować o ile nie instalowaliśmy całego desktopu.

    sobota, 6 października 2012

    Nagrywanie programów z karty TV za pomocą mencoder

    Jak wspominałem poprzednio z kartą WinFast TV2000 są w Fedorze problemy z dźwiękiem przy kernelach nowszych niż 3.2. Do tego jeszcze nie ładuje się domyślnie moduł snd-pcm-oss a bez niego nie udało mi się zmusić mencodera do nagrywania dźwięku. Przygotowanie do nagrywania należy więc zacząć od załadowania tego modułu
    modprobe snd-pcm-oss
    Bez załadowania tego modułu próby nagrywania kończyły się u mnie komunikatem
    Unable to open '/dev/dsp': No such file or directory
    Sprawdziłem wiele opcji mencodera i kilka dostępnych kodeków i osobiście preferuję nagrywanie z opcjami
    mencoder tv://R1 -o test.avi -oac mp3lame -lameopts br=64 \
    -ovc lavc -lavcopts vcodec=wmv2:vbitrate=1500:vhq:keyint=250
    Oczywiście "R1", to przykładowy program (patrz: poprzedni wpis), który należy zastąpić nazwą żądanego kanału lub częstotliwością a nagrywamy do pliku test.avi.
    I jeszcze jedno - to jest zwykła TV a nie full HD, wiec nie spodziewajmy się super jakości.

    mencoder ma jedna wadę - nagrywa w tle nie wyświetlając nagrywanego programu. Można to jednak łatwo obejść. Na jednym terminalu włączamy nagrywanie, w dowolnym mikserze wyciszamy dźwięk tak, żeby nie słyszeć nagrywanego a w drugim terminalu przy pomocy mplayer odtwarzamy aktualnie nagrywany plik.

    czwartek, 4 października 2012

    Karta TV Leadtek WinFast TV2000 XP RM

    Mam starą kartę TV na złączu PCI z chipsetem bt878. Jak podłączyć? Najpierw tworzymy plik /etc/modprobe.d/tv.conf, potem wpisujemy do niego kilka magicznych linijek
    alias char-major-82 bttv
    alias char-major-82 videodev
    alias char-major-82-0 bttv
    options bttv tuner=38 card=34 radio=0 \
    lumafilter=1 combfilter=1 chroma_agc=1
    Numer karty i tunera trzeba wypróbować. Sprawdzamy model i tuner z tej strony z tej strony (w sieci można oczywiście znaleźć inne). Informacje o tunerze w rozdziale 4.2. The Tuner Module a model w dodatku B. Bt8x8 Cards by Number
    Po restarcie karta powinna być widoczna i działać. Niestety jądra nowsze od 3.2 (3.3.x w górę) wyraźnie nastawiły się na karty, których nie trzeba łączyć kabelkiem z płytą główną w celu odtwarzania dźwięku, tak więc od Fedory 16 samodzielnie przebudowuję i instaluję jądro 3.2.10 z paczki src.rpm (ostatnia stabilna paczka przed wprowadzeniem kernela 3.3). Bez takiej operacji dźwięk mam ze wszystkich źródeł z wyjątkiem karty TV.
    Jest to prawdopodobnie spowodowane tym, że nowsze jądra nie obsługują wejścia AUX-IN/CD-IN na płycie. Jeśli chcemy korzystać z nowszego jądra możemy obejść problem wykonując przejściówkę łączącą CD-OUT na karcie TV z wejściem liniowym (LINE IN) na karcie dźwiękowej.

    W Fedorze i w ogóle w Linuksie programów do oglądania TV jak na lekarstwo tym bardziej, że wchodzi do powszechnego użytku DVB-T i starociami nikt się zajmował nie będzie. Taka karta jak TV2000 będzie miała jeszcze jakiś czas rację bytu tylko w kablówkach. Jak więc oglądać? Ja robię to po prostu w mplayerze. Opcji co niemiara, ale ja wykorzystuję zazwyczaj nazwę kanału. Jak najłatwiej wyszukać te nazwy? Uruchomić mplayer z terminala...
    mplayer tv://
    i teraz klawiszem "k" zmieniamy kanały "w dół" a klawiszem "h" - "w górę". W terminalu będą pokazywać się napisy w rodzaju
    Selected channel: R1 (freq: 49.750)
    Zapamiętujemy nazwy kanałów i częstotliwości interesujących nas programów. Oczywiście takie klikanie za każdym razem w górę i w dół jest irytujące, więc można od razu uruchomić mplayer na żądanym programie. Np. żeby uruchomić na naszym przykładowym kanale "R1" piszemy w terminalu po prostu
    mplayer tv://R1
    albo
    mplayer tv:// -tv freq=49.750
    Drugi z podanych sposobów przydaje się, gdy chcemy kanał podstroić. Można to zrobić zmieniając wartość freq. Warto pamiętać o opcji -aspect - umożliwia dostosowanie proporcji okienka i zachowanie ich przy rozciąganiu obrazu, np.:
    mplayer tv://R1 -aspect 16:9
    wyświetla tv w proporcjach - kto by na to wpadł? - 16:9 a wartość 4:3 wyświetla "standardowe" proporcje telewizyjne. Oczywiście inne proporcje też są dopuszczalne.

    Czasem chciałoby się też jakiś program nagrać. Ja robię to za pomocą mencoder, ale o tym następnym razem.

    poniedziałek, 1 października 2012

    GUI do zarządzania serwisami w systemd

    Do zarządzania serwisami w systemd w Fedorze można wykorzystać graficzny interfejs. W tym celu należy zainstalowac pakiet systemd-gtk
    yum install systemd-gtk
    a następnie jako root wywołać polecenie
    systemadm

    [Aktualizacja]
    W Fedorze 18 należy zainstalować pakiet systemd-ui
    yum install systemd-ui
    Nazwa polecenie uruchamiającego aplikację pozostała bez zmian.