Archive for Linux

Ubuntu 10.04, LTSP ja ID-kaart

Vahepeal on mitu uut Ubuntu väljalaset olnud ning viimased ID-kaardi terminal-serveri paketid Ubuntule sai treitud 8.04 jaoks. Seekord siis Estobuntu 10.09 ehk Ubuntu 10.04 jaoks, seni olengi ainult Ubuntu Long Term Support väljalasetele neid teinud ning tihedamini vist ei hakkagi punnitama.

Serveri tarkvara paigaldus

Juhend eeldab Ubuntu Server 10.04 paigaldust. Kõigepealt paigalda LTSP paketid:

apt-get install ltsp-server-standalone python-software-properties ubuntu-desktop

Paigalda soovitud töölaud:

apt-get install ubuntu-desktop

Luba repositooriumid:

add-apt-repository ppa:lauri-vosandi/ppa
add-apt-repository ppa:esteid/ppa
apt-get update

Paigalda paketid:

apt-get install openssh-server libpcsclite1
    qdigidoc qesteidutil mozilla-esteid thunderbird-esteid

Lisa Xsession skript mis näitab uut PCSC-lite sokkli asukohta:

echo "export PCSCLITE_CSOCK_NAME=$HOME/.pcscd.comm" > /etc/X11/Xsession.d/80-pcsclite

Terminali tarkvara paigaldus

Paigalda terminali tarkvara serveri /opt/ltsp/i386 alla:

MIRROR="http://ee.archive.ubuntu.com/ubuntu/" \
EARLY_PACKAGES="ltsp-client" \
LANG=C \
ltsp-build-client --arch i386

Sisene terminali juurikasse:

chroot /opt/ltsp/i386

Uuenda pakettide nimekirju:

apt-get install python-software-properties
add-apt-repository ppa:lauri-vosandi/ppa
add-apt-repository ppa:esteid/ppa
apt-get update

Paigalda modifitseeritud paketid:

apt-get install openssh-client pcscd libccid

Lisa SSH kliendi seadistused, asenda 192.168.0.21 oma serveri IP-ga:

echo "Host 192.168.0.10
    RemoteForward [~/.pcscd.comm] :[/var/run/pcscd/pcscd.comm]" >> /etc/ssh/ssh_config

Välju terminali juurikast

exit

Uuenda võrgust laetavaid tõmmiseid

ltsp-update-image --arch i386

Comments (1) »

Bricking Samsung Galaxy S2

Hey everyone, it has been a long time since my last post. There’s much fuss around installing custom firmware on Samsung Galaxy S2, so I wanted to figure out how it exactly works.

First of all most Android customized ROM’s, eg. CyanogenMod, VillainROM, DarkyROM aren’t exactly ROM images, they’re zipped filesystem overlays of the original stock firmware root filesystem. This means that in order for the customization to work, you first need to have properly booting stock firmware.

To install these customizations you need to have a rooted phone. Rooted phone basically meanss that you can run the classic UNIX command “su” to become the root user. There are hacked kernel images available on the XDA developers for various versions of Galaxy S2.

Utilities called Odin and Heimdall are available for directly manipulating the built-in flash storage of Samsung Galaxy phones. Odin seems to be available only for Windows so it’s out of the scope of this blogpost. Heimdall is a cross-platform command-line utility with similar purpose.

Rooting Samsung Galaxy S2 is easy as booting it into the download mode, this means turning the phone off and holding Volume down and Home buttons while powering up the phone and uploading the hacked kernel using Heimdall:

# This kernel should work with stock Android 2.3.4 firmware of Galaxy S2 sold in Europe
http://attachments.xda-developers.com/attachment.php?attachmentid=651559&d=1310388033 \
    -O CF-Root-SGS2_XX_OXA_KG1-v4.1-CWM4.zip
unzip CF-Root-SGS2_XX_OXA_KG1-v4.1-CWM4.zip
tar xvf CF-Root-SGS2_XX_OXA_KG1-v4.1-CWM4.tar
echo "3a70ced0c96d947b4cb1983dcebd1584 zImage" | md5sum -c -
sudo heimdall flash --kernel zImage

The yellow warning sign is shown while booting with the hacked kernel – it’s okay. The hacked kernel image also installs two apps: ROM Manager and Superuser. First one allows the user to (re)boot into ClockworkMod Recovery. It is also possible to directly boot into ClockworkMod Recovery, just hold Volume up and Home while powering up the phone. It is always good idea to back up the current system. Move around in the ClockworkMod Recovery menus with volume up/down buttons.

The phone’s internal flash storage is called “SD Card” in the ClockworkMod Recovery although it’s not an actual SD card plugged into the SD card socket, so this means that you don’t need an SD card to install custom ROM. While running ClockworkMod, it is possible to mount the internal flash storage to your PC, this way you can upload the ROM zip to your phone. Once having the right zip file in your phone just select “Install zip from sdcard” while running ClockworkMod Recovery.

There are many custom ROM’s for Galaxy S2, the most popular CyanogenMod seems to be built from scratch and does not have the optimizations enabled for S2, it’s also rumored that is does not have support for hardware accelerated video decoding. I haven’t tried out VillainROM yet, but DarkyROM that is based on the original Samsung firmware seems to be running just fine.

OH AND OF COURSE YOU VOID ANY WARRANTY IF YOU FLASH ANY FUNKY STUFF ON YOUR PHONE

VillainROM
Darky’s ROM
Hacked kernels with CWM and SU on XDA developers
Heimdall
Root Galaxy S2 with Heimdall on Linux
Tips at CyanogenMod
Default PIT (Partition Information Table)

No comment »

Reedeõhtune virin ketaste teemal

Alustaks siis seekord tavalistest kõvaketastest. Arvutimaailma tundvad inimesed teavad et 1 kilobait = 1024 baiti, 1 megabait = 1024 * 1024 = 1 048 576 baiti ning 1 gigabait = 1024 * 1024 * 1024 = 1 073 741 824 baiti. Kui nüüd tähti närida siis õigem oleks kasutada 1024 astmete jaoks termineid kibibyte, mebibyte, gibibyte aga IT-inimeste seas pole see vedu võtnud. Küll aga kõvakettatootjad on aga otsustanud kõvaketaste mahtuvust mõõta “õigetes” SI-ühikutes. Praktikas tähendab see seda, et 1000GB ketas ongi ligilähedal miljardile baidile:

lauri@localhost:~$ fdisk /dev/sdb
Command (m for help): p
Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes

Tehes siit nüüd kiire arvutuse ja eeldades, et failide suurusi mõõdan ma ikka 1024 kordsetena nagu normaalne arvutikasutaja, tuleb välja et oma arust makstud 1000GB asemel saan ma kettale kirjutada 931GB andmeid ning 69GB jagu on mulle tünga tehtud! Protsentides oleks see umbkaudu 7% jagu.

Minnes edasi nüüd SSD ehk pooljuhtketaste juurde, siis asi on veel absurdsem. Ketastele peale märgitud suurused nt. 128GB väljendavad füüsiliselt kasutatavat andmemahtu, tegelikkuses on pooljuhtketaste omapäraks see, et osad plokid hapnevad kirjutustsüklite ammendumisel. Selle raviks on tarbija makstud ruumist eraldatud mingi hulk plokke, nt 8GB remap-imise jaoks. Kasutaja jaoks on seetõttu partitsioneeritav ainult 120GB:

lauri@localhost:~$ smartctl -i /dev/sda
smartctl 5.40 2010-10-16 r3189 [x86_64-redhat-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net
 
=== START OF INFORMATION SECTION ===
Device Model: ADATA SSD S599 128GB
Serial Number: 00000000000000000082
Firmware Version: 3.1.0
User Capacity: 120,034,123,776 bytes
Device is: Not in smartctl database [for details use: -P showall]
ATA Version is: 8
ATA Standard is: ATA-8-ACS revision 6
Local Time is: Sat Apr 30 00:29:14 2011 EEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
 
lauri@localhost:~$ fdisk /dev/sda
Command (m for help): p
Disk /dev/sda: 120.0 GB, 120034123776 bytes

Maakeeli tähendab see seda et makstud 128GB asemel saan ma kasutada vähem kui 112GB. Protsentides tähendab see umbkaudu 13% tünga. Remap ala suurus sõltub tootjast, ADATA omadel rohkem, OCZ omadel vähem. OCZ pooljuhtketaste jaoks leidus ka püsivara uuendamise tarkvara Linux jaoks erinevalt ADATA-st.

Kokkuvõttes üsna ebameeldiv kuidas tarbijaid lollitatakse numbritega …

No comment »

Räniorg

Seekord siis jälle üks rääkimata lugu. Märtsi lõpp kuni aprilli algus käisime Ettevõtluse Arendamise Sihtasutusega USAs, täpsemini Silicon Valleys, Kalifornia osariigis.

Alustada võiks ehk ettevalmistustest – USAsse minekul on kaks varianti, kas biomeetriline pass või traditsiooniline viisa. Biomeetrilist passi sai teha kodakondsus- ja igratsiooni ametis, nüüdsest on KMA liidetud kokku Politsei- ja Piirivalveametiga. Maksma läheb ta umbkaudu 30€, kiirpassi varianti pole mõtet võtta, sest lubatud kuu asemel saab passi kätte paari päevaga ka tavamenetluses. Järgmine samm on ESTA (Electronic System for Travel Authorization) avalduse täitmine, mille eest küsitakse 14 USD ehk umbkaudu 10€. Veider on see et Eestil peaks olema viisavabadus USAga kuid ESTA avaldus näeb väga välja viisa moodi, ärge unustage siis “have you been involved in terrorist activites” juures märkida “no”.

Meie lend läks läbi Munichi/Münheni, Tallinnast sinna lend kestab umbkaudu 2-3 tundi. Peale seda järgnesid piinarikkad 8 tundi oodates ühenduslendu ning kogu lend kulmineerus 12 tunnise transatlantilise lennuga kus jalgu liigutada ega ka magada ei saa sest aknast paistab päike ning me lendame päikesega kaasa. Kui meil on siin hetkel 22:31 õhtul siis neil on seal päeval 12:30, mis tähendab et sinna jõudes on unetsükkel täiesti sassis ja tõenäoliselt ärkad hommikul kell 5 hommikul üles mõttega “okei mis nüüd?”. Moodsas keeles nimetatakse seda nähtust jet lagiks aga see selleks.

Esimesteks päevadeks oli planeeritud O’Reilly korraldatud Web2.0 EXPO kus oli mitmeid huvitavaid seminare ning erinevad startupid oma putkad püsti ajanud kus nad oma nänni jagasid ja maakeeli külastajaid spämmisid. Õhtustel aegadel toimusid konverentsihoones ja kõrval business networking üritused. Astusin ka mina siis korraks oma koorikust välja, networkisin ja tutvustasin Povi ning meie tegemisi. Suhtlusvõimete overclockimise jaoks oli õnneks tasuta õlut!

Peale konverentsi käisime külas Google peamajas, kus meile tegi väikese intro Chris DiBona rääkides Google edulugu avatud lähtekoodiga tarkvara kasutamisest Google infrastruktuuris. Kokkuvõttes oli jutt umbes selline et Oracle andmebaasitarkvara ka kõige soodsama pakkumise juures oleks olnud kordades kallim kui avatud lähtekoodiga tarkvara kohandamine Google vajaduste tarbeks. Teine oluline aspekt oli ka see et Google ei ehitanud oma taristut üles traditsioonilisele kallile serveririistvarale, vaid kasutas odavat PC riistvara ning lahendas kõik sellest tulenevad probleemid tarkvaras. Chris DiBona on muuseas ka üks Google Summer of Code organisaatoritest ja intervjuu temaga leiab GSoC kodulehelt. Sealses Google kontoris on tööl ka neli eestlast.

Sain läbi astutud ka Kalifornia ülikooli Berkeley osakonnast. Sellest ülikoolis on näiteks avastatud 8 keemilist elementi ning Nobeli preemia laureaatidel on tasuta parkimine. Ühiskohtumine oli Stanford ülikooli professori Keith Devliniga kes ühel slaidil tõi välja ka Stanfordi aastase 3 miljardi dollarilise ehk umbkaudu 33 miljardi kroonise eelarve, võrdluseks oli Eesti riigi eelarve aastal 2008 umbkaudu 85 miljardit krooni.

Kokku olime USAs umbkaudu 10 päeva, mille aja jooksul sai päris palju huvitavat nähtud ja kogetud. Kalifornia pole kindlasti stereotüüpne USA, mingil määral ehk sarnane Amsterdamiga kus on palju kohanenud sisserändajaid, ettevõtlus vohab ning kanepi omamine on legaalne.

No comment »

MeeGo Summit

Heihopsti, pole ammu midagi siia kirjutanud. Väga töökad ajad on olnud ja pole olnud aega pläkutamiseks. Käisin MeeGo Summitil Tamperes, neljapäeva õhtul sai siit minekut tehtud ja täna jõudsin tagasi kõigi sekelduste kiuste.

Peamine põhjus miks üldse sinna mindud sai oli soov teada saada, et mis MeeGo-st edasi saab arvestades viimaseid Nokia suurte ninade otsuseid. Teine motivaator oli see et Intel oli lubanud jagada tahvelarvuteid MeeGo Tablet UX-ga.

Peale Nokia aktiivse osavõtu lõppemist MeeGo projektis on sellega liitnud mitmed teised tegijad. Kui ma nüüd õigesti aru sain siis LG on tulnud punti et mobiiltelefonide arendust teha, üks mõte mis kõlama jäi oligi see et aasia ettevõtted on huvi üles näidanud MeeGo kasutamiseks. Autotoojad muuhulgas BMW ja GM on ka huvitatud MeeGo IVI süsteemidest, ehk maakeeli auto meelelahutusseadmetest. Nii palju kui ma erinevate jutustajate jutust kokku lappisin siis, MeeGo eesmärgiks on olla üldkasutatav avatud lähtekoodiga tarkvarabaas mitmesuguste erinevate seadmete loomiseks.

MeeGo pakub RPM baasil paketihaldust, OBS (OpenSUSE Build System) baasil tarkvara kompileerimist ja pakendamist ning muud tarvilikku, et seadme tootja saaks keskenduda oma tootele mitte tarkvara repositooriumite haldamisele või muudele distributsiooni administreerimistöödele. Üks oluline aspekt on see et MeeGo ei defineeri milline kasutajaliides välja nägema peab erinevalt Androidist kus Google on pannud paika kindlad disainijuhised mis tähendab et Androidi telefonide turul on seadme tootjal üsna keerukas eristuda teistest tarkvara poolel. MeeGo on lubanud jätkata oma API ehitamist Qt baasil ning Qt maailmas on ka mõned huvitavad tehnoloogiad välja tulnud, muuhulgas Qt Quick ning QML millega annab teha päris huvitavaid graafikarohkeid kasutajaliidese lahendusi.

Jõudsin ka üle vaadata mis staadiumis MeeGo erinevad user experience reference designid on. MeeGo on hetkeseisuga välja lasnud USB pulga tõmmise netbookide jaoks. Minu Thinkpadi peal läks ta täitsa kenasti käima ning esmapilgul tundus üsna kasutuskõlbulik. Netbooki ISO sees olid siis näiteks hunnik GNOME programme muuhulgas näiteks Nautilus, muusika pleieriks oli Banshee ning veebilehitsejaks Chromium.

Oulust pärit firma AAVA Mobile OY loodav telefon pidi saama ametlikuks MeeGo Handheld UX riistvara reference designiks kuid hetkeseisuga pole seda veel välja lastud. MeeGo Handheld UX tõmmisest on hetkel kättesaadav nn. Developer Edition mille annab kirjutada 4GB micro-SD kaardile ning buutida N900 peal kasutades U-Boot nimelist programmi kuid hetkel pole see minu arvates kaugelki kasutatav.

Tahvelarvutite jaoks mõeldud MeeGo Tablet UX jaoks võeti riistvara etalondisainiks ExoPC Slate. Tegu on Kanadast pärit tahvelarvutiga mille sees on Intel Atom protsessor, 2GB mälu, 64GB SSD ning palju muudki huvitavat. See on ka masin mida Intel jagas 175 esimesele AppUp seminarile registreerunule. AppUp seminar toimus MeeGo summiti viimasel päeval kus Inteli mehed rääkisid oma app-ide poest. MeeGo tahvelarvuti variant pole ka eriti kasutuskõlbulik.

Kokkuvõttes on MeeGo praegu väga-väga toores, kuid arvestades et hetkel on pundis Intel, Novell, LG ja paljud teised liitumas siis lootust võib veel olla. Apple iPhone ja Google Androidi kohta öeldi ju ka alguses et it will never work.

*Käesolev post sai kiirelt kribatud ja sisaldab tõenäoliselt üsna palju kirjavigu :)

No comment »

Nokia flips off open-source community

This is a summary of key open-source related events of Nokia in past five years.

In 2005 Nokia launched Nokia 770 internet tablet, being the first device to ship Maemo. Maemo then featured GTK derived user interface and closed-source Opera web browser.

It was quickly followed by Nokia N800 and Nokia N810 in 2007 which included Mozilla Fennec, an Firefox derived web browser optimized for mobile devices. In the May of 2009 Mozilla and Nokia arranged a two day hacking fest to enable further collaboration between Mozilla and Maemo, to have better support for Mozilla’s Fennec in Maemo.

In the beginning of 2008 Nokia acquired Qt of Norwegian company Trolltech. Qt is cross-platform application and UI framework used by many open-source projects. KDE, one of the main desktop environments used on GNU/Linux workstations relies on Qt libraries. After acquisition Nokia became patron of KDE being one of the supporters of KDE development.

In 2008 Nokia also aquired Symbian and made it open-source. In addition they started porting Qt to Symbian making Symbian platform supporting Qt based applications.

In October of 2009 Nokia officially released Nokia N900. The Maemo for N900 featured native support for Qt applications and included some closed-source components like GPS and GSM kernel modules. In the February of 2010 Nokia and Intel announced plans to merge Intel’s Moblin and Nokia’s Maemo to become MeeGo.

It seemed Nokia had embraced open-source until 21. September of 2010 when they announced that Olli-Pekka Kallasvuo would step down as the CEO of Nokia to be replaced by Stephen Elop. What is worth mentioning is that Elop had worked as the head of Microsoft’s business division between 2008 and 2010.

Just few months before Nokia’s planned releasing of the first MeeGo device, Ari Jaaksi the Nokia’s MeeGo device chief quits for “personal reasons”. Few months later on 11. February of 2011 Nokia announced their strategy for future putting emphasis on Windows Phone 7 platform. That day Nokia lost 5 billion USD (15%) of their market cap.

Microsoft-centric strategy involves moving Nokia Ovi store to Microsoft Marketplace and Nokia Maps to Microsoft’s Bing. Most importantly Microsoft is supposed to provide all developer tools to Nokia which might mean that they will drop Qt support altogether. KDE has fortunately signed an agreement which allows them to release Qt under license of their choice if that should happen.

So what is the bottom line? Symbian, while having the majority of market share, was dying platform and they had to find something to fight against Android and iPhone. Having Qt on top of Symbian and Maemo/MeeGo for future devices, had a lot potential to do that. Yet from having the support of open-source community, they ended up with Microsoft and losing even more of their market value.

No comment »

Music On Console

Music On Console Player or mocp for short is awesome piece of software for command line geeks. It is somewhat similar to Midnight Commander – on the left panel you can browse through your filesystem and on the right there is your current playlist.

To install on a Debian or Ubuntu box:
apt-get install moc moc-ffmpeg-plugin

Start it up with mocp command. Note that some Qt guys had another program called moc!
mocp

Now the most important part – key bindings! Let’s start with the global ones.

  • q – Exit the user interface but keep player running in the background
  • Q – Exit the whole program and stop any playing audio tracks
  • R – Toggle repeating the playlist
  • S – Toggle shuffling
  • tab – Switch between panels

Now the keys you can use on the left panel for browsing the files:

  • a – Add files/directories to the playlist
  • A – Add playlist to current playlist
  • Enter – Enter directory or add file

And finally the keys you can use on the playlist

  • d – Remove track from playlist
  • C – Clear the whole playlist
  • Enter – Start playing a track
  • Control-f – Toggle track format visibility
  • Control-t – Toggle track duration visibility

Note that shortcuts in capital letters mean the button pressed with Shift. Happy hacking :)

No comment »

Debian Lenny, LTSP ja ID-kaart

Serveri tarkvara paigaldus

Siin on siis väike juhend kuidas Debian Lenny’ga teha sama mida Estobuntu LTSP võimaldab. Pikalt see kord üksipulgi lahti ei seleta mis mida teeb nii et kui huvi on siis küsi e-posti vahendusel.

Kõigepealt paigalda serveris ID-kaardi tarkvara:

echo deb http://id.smartlink.ee/repo/release/debian/ lenny main >
    /etc/apt/sources.list.d/idkaart.list
wget http://id.smartlink.ee/repo/apt-esteid-test.gpg.asc -O - | apt-key add -
sudo aptitude update
sudo aptitude dist-upgrade
sudo aptitude install qdigidoc qesteidutil mozilla-esteid icedove-esteid

Luba repositooriumid:

deb http://v6sa.itcollege.ee/ debian lenny
deb http://backports.debian.org/debian-backports lenny-backports main

Seadista DHCP3 server:

echo "subnet 192.168.0.0 netmask 255.255.255.0 {
    range 192.168.0.220 192.168.0.230;
    option broadcast-address 192.168.0.255;
    option routers 192.168.0.10;
    option subnet-mask 255.255.255.0;
    option root-path "/opt/ltsp/i386";
    filename "/ltsp/i386/pxelinux.0";
}" > /etc/dhcp3/dhcpd.conf
/etc/init.d/dhcp3-server restart

Paigalda tarkvara

apt-get install libpcsclite1 opensc openssh-server dhcp3-server
apt-get install -t lenny-backports ltsp-server

Tee Xsessioni fail mis ütleb kus kohas PCSC-lite socket nüüd asub:

echo "export PCSCLITE_CSOCK_NAME=$HOME/.pcscd.comm" > /etc/X11/Xsession.d/80-pcsclite

Terminali tarkvara paigaldus

Paigalda terminali tarkvara serveri /opt/ltsp/i386 alla:

ltsp-build-client
    --arch i386
    --backports-mirror "http://backports.debian.org/debian-backports"
    --apt-key /etc/apt/trusted.gpg

Seadista NFS server:

echo "/opt/ltsp/i386 192.168.0.0/24(no_root_squash,ro)" >> /etc/exports
/etc/init.d/openbsd-inetd restart
/etc/init.d/nfs-kernel-server restart

Sisene terminali juurikasse:

chroot /opt/ltsp/i386

Lisa repositoorium:

echo "deb http://lauri.vosandi.eu/ debian lenny" >> /etc/apt/sources.list
apt-get update

Paigalda paketid

apt-get install openssh-client pcscd libccid

Lisa OpenSSH seadistused, asenda 192.168.0.10 serveri IP-ga:

echo "Host 192.168.0.10
    RemoteForward [~/.pcscd.comm] :[/var/run/pcscd/pcscd.comm]" >> /etc/ssh/ssh_config

Välju terminali juurikast:

exit

Käsitsi kompileerimine

Paigalda vajalikud paketid

apt-get install libwrap0-dev libssl-dev libpam0g-dev libedit-dev libselinux1-dev libkrb5-dev libgtk2.0-dev hardening-includes libusb-1.0-0-dev mercurial flex autotools-dev libccid opensc
apt-get install -t lenny-backports debhelper

Kompileeri modifitseeritud OpenSSH 5.5

hg clone http://lauri.vosandi.eu/hg/ltsp-esteid/openssh/
cd openssh
dpkg-buildpackage
cd ..

Kompileeri PCSC-lite 1.6.5 + SVN muudatused:

hg clone http://lauri.vosandi.eu/hg/ltsp-esteid/pcsclite/
cd pcsclite
dpkg-buildpackage
cd ..

No comment »

GNU/Linux based terminal-servers with SmartCard support


Our company has been dealing with GNU/Linux based terminal-servers for a while and in Estonia you run into issues with ID-card at some point. Estonian ID-card is a SmartCard which is used to authenticate person online and to give legally valid signature. With terminal-server systems issues arose immediately because PCSC-lite originally didn’t support any network transparency. With few hacks it is possible to do this and that’s what this post is about.

PCSC-lite is a SmartCard framework which allows multiple applications to use multiple cards. Applications use a UNIX domain socket to talk to the process which handles the cards. There also used to be a public shared memory file which was a complete showstopper for LTSP, but after poking the core developer Ludovic it was finally removed. In revision 5373 another important feature for LTSP was implemented, the user can also specify the path to the forementioned UNIX domain socket.

So obviously what you need to do is to run the daemon in the terminal, redirect the UNIX domain socket to the server and tell the application to use that custom path. With version 5 LTSP switched from unencrypted connections to OpenSSH which encapsulates X11 traffic and any other connections between server and terminal. OpenSSH does support redirecting TCP/IP sockets but not UNIX domain sockets altough required code changes are minor.

There was a project called streamlocal, which was basically a bunch of patches for OpenSSH 4.4p1 to allow UNIX domain socket redirecting, I updated the patch and made it available for OpenSSH 4.7p1. After that there were some major rewrites in the OpenSSH core so I didn’t bother porting and I started from scratch to have the bare minimum to make ID-card work. This resulted in hackish rewrites for OpenSSH 5.3p1 and 5.5p1.

LTSP5 uses LDM in the terminal to authenticate SSH connection after which it passes X11 session to the desktop session application on the remote machine. To enable the socket redirection I also needed to modify LDM to inject parameters to SSH client process. This patch is obsolete since LDM now officially reads environment variable LDM_SSHOPTIONS for exactly the same purpose.

There are packages available for Ubuntu 8.04 and Ubuntu 10.04. National Library of Estonia is using them to power their server and 50 VxL terminals. There’s a manual written in Estonian, you can try your luck with Google Translate. There was an article about our solution in Arvutimaailm, again you can try your luck with Google Translate.

PS: OpenSSH is reference implementation of the SSH protocol so incorporation of UNIX domain patches needs protocol standard change first. This could be pushed through Internet Task Engineering Force, so if anyone is willing to lobby them please let me know :)

No comment »

3G ruuter

Häkkimistuhinas tuli mõte et tahaks proovida mõne ruuteri küljes USB 3G pulga käima saada. Katsetuseks sattusid parajasti Asus WL500G Premium ruuter ning EMT levitatav 3G pulk, täpsema mudeliga Huawei E1750. SIM kaart oli Elisa pakutav MINT maks allalaadimiskiirusega 2MBit.

Esmalt ajasin ruuterile selga OpenWRT tarkvara. Sellel ruuteril on pikka aega olnud võimalik jooksutada ainult 2.4 kernelil baseeruvat tarkvara, seda enamjaolt Broadcomi WiFi kaardi tõttu. See kivi on jalus olnud juba üle 8 aasta aga lõpuks on asjalikud mehed reverse engineerinud b43 nimelise avatud lähtekoodiga tüüreli Broadcomi binaari baasil.

Ajaga kaasas käimine pole ainus põhjus kerneli 2.6 seeria kasutamiseks, kiired HSDPA USB 3G modemid aga tahavad saada “optional” nimelist kerneli moodulit mis hetkel töötab ainult 2.6 kerneli all. Ilma “option” moodulita ei saanud ma 3G kaarti õigesti käima, allalaadimiskiirus jäi 50 kilobaiti/sekundis piiresse ning ping oli kohutav. OpenWRT pakub mõlema kerneli baasil tarkvara, 2.6 oma paigaldamiseks tuleks sisse logida ruuterisse ning eeldusel et seal juba mingi Linuxi baasil OS toimib teha midagi sellist:


cd /tmp/
wget http://downloads.openwrt.org/backfire/10.03/
brcm47xx/openwrt-brcm47xx-squashfs.trx
mtd -r write openwrt-brcm47xx-squashfs.trx linux

Lootes et see tegevus ruuterist tellist ei tee, peaks ta taaskäivitama end ning võimaldama telneti kaudu sisselogimist IP aadressil 192.168.1.1. Järgmine samm on uuendada pakettide nimekirja ning paigaldada vajalikud paketid:


opkg update
opkg install kmod-usb-uhci kmod-usb-serial kmod-usb2 kmod-usb-serial-option comgt usb-modeswitch nano htop usbutils

Peale seda muutsin WAN seadistused failis /etc/config/network umbestäpselt selliseks. See fail on osa OpenWRT standardsest võrguseadistusfailist ning OpenWRT kasutab proto=3g puhul ühenduse käivitamiseks ülal märgitud comgt või vanema nimega gcom paketti.

config interface wan
  option 'ifname' 'ppp0'
  option 'proto' '3g'
  option 'device' '/dev/ttyUSB0'
  #option 'apn' 'internet' # EMT
  #option 'apn' 'internet.tele2.ee' # TELE2
  #option 'apn' 'wap' # Elion (?)
  option 'pincode' '5101'
  option 'service' 'umts_only'
  option 'keepalive' ''
  option 'ppp_redial' 'persist' # Ühenduse katkemisel ühenda uuesti
  option 'pppd_options' 'noipdefault' # TELE2 häkk
  #option 'pppd_options' 'debug' # Vajadusel luba silumine logread kaudu
  #option 'username' '*' # Kasutajanimi kui operaator nõuab
  #option 'password' '*' # Salasõna

Käesolev E1750 pulk identifitseerib end esialgu kui virtuaalne USB-CDROM (vendid=0x12d1; prodid=1446). Säärased 3G pulgad vajavad usb-modeswitch programmi mis käsib CDROMil end ümber lülitada modemiks. OpenWRTs ei ole kaasa pandud udev reegleid modeswitchi täielikuks automatiseerimiseks nii nagu ta on lahendatud nt Ubuntus, kus ports udev reegleid koos modeswitchi reeglitega on /usr all. Selle modemi jaoks tuleb luua järgnev fail /etc/usb-modeswitch.conf sisse:

DefaultVendor= 0x12d1
DefaultProduct=0x1446
TargetVendor= 0x12d1
TargetProductList="1001,1406,140c,14ac"
CheckSuccess=20
MessageContent="55534243123456780000000000000011060000000000000000000000000000"

Kui pulk on ruuteris algkäivitamise ajal siis OpenWRT kutsub usb-modeswitch programmi ise mingil hetkel välja aga kui seda ei juhtu siis tuleb seda käsitsi teha. Ümberlülitumise õnnestumisel konkreetne modem tuvastab end kui Huawei E620 (vendid=0x12d1; prodid=0×1001).

usb_modeswitch

Kui modemi plokkseade (/dev/ttyUSB0) on nähtav, võib proovida ühenduse loomist. Võrguseadistuste uuesti laadimiseks on kaks varianti:

ifup wan # Liidese järgi
/etc/init.d/network restart # Kõik liidesed

Vigade tuvastamiseks on OpenWRTs järgnev käsk:

logread

Modemi oleku informatsiooni lugemiseks on omaette plokkseade:

root@OpenWrt:~# gcom -d /dev/ttyUSB2
SIM ready
Waiting for Registration..(120 sec max)
Registered on Home network: "EE elisa",2
Signal Quality::21

Viimane huvitav tähelepanek oli see et modem näitab sinist tuld siis kui tal on 3-3.5G ühendus ning rohelist siis kui on kättesaadav kõigest 2-2.5G leviala. Sinise korral oli allalaadimiskiirus 2.2Mbit ringis ja ping 80-150ms. Rohelise korral kukkus ta kuskil poole megabiti ja 500-600ms peale.

Kiiruseprobleemide korral võib veel mängida “usbserial” mooduli maxSize parameetriga failis /etc/modules.d/60-usb-serial. See peaks mõjuma ka “optional” moodulile:

usbserial maxSize=4096

Comments (1) »