User:Jebba
(→Misc: #filename=Hands-v32-h264.avi) |
(→maemo-optify: maemo-optify 0bytes and greater) |
||
Line 680: | Line 680: | ||
maemo-optify-buildpackage -rfakeroot -b -uc | maemo-optify-buildpackage -rfakeroot -b -uc | ||
maemo-optify-buildpackage -rfakeroot -S | maemo-optify-buildpackage -rfakeroot -S | ||
+ | |||
+ | |||
+ | Uh, I also want files of ''all'' sizes to be moved to /opt, not just ones above 2048 bytes. Asterisk has 600k of files still, since it has lots of sound files smaller than 2k. There is a forthcoming option to define this in debian/optify, but that feature isn't in place yet. So in the interim remove the maemo-optify packages (from both X86 and ARM), and use this "patch": | ||
+ | |||
+ | --- maemo-optify/maemo-optify 2009-12-04 21:30:51.770927951 -0300 | ||
+ | +++ /usr/local/bin/maemo-optify 2009-12-06 17:39:22.000017316 -0300 | ||
+ | @@ -127,7 +127,7 @@ | ||
+ | dbg "link, nope\n"; | ||
+ | } elsif (! ($entry eq "." || $entry =~ /^.\/usr/)) { | ||
+ | dbg "not in /usr, nope\n"; | ||
+ | - } elsif ($size >= 2048) { | ||
+ | + } elsif ($size >= 0) { | ||
+ | if (!blacklisted ($entry)) { | ||
+ | dbg "yes, saved $size bytes\n"; | ||
+ | $total_count += 1; | ||
====Upload to extras-devel==== | ====Upload to extras-devel==== |
Revision as of 20:41, 6 December 2009
- Name: Jeff Moe
- Email: moe@blagblagblag.org
- Nick: jebba, jebbajeb, jebba900, etc...
Usually I dot my laptop with READMEs in various ~/devel/ subdirs, but in this case I decided to write up some notes here. These are mostly for my own reference, but perhaps they will be of use to you.
Debrick
Too mucha programmaz
I bricked my N900 by adding the extras-testing + extras-devel repos and then installing lots of applications. I hit 100% on / (root filesystem) and on reboot the system hung at the "dots" part, ala:
* (*) * * *
I had filled up to 100% a number of times before and rebooting the phone had cleared up space (e.g. 100% full before reboot, 96% full after reboot). This is likely because 5% or so is reserved for root. Anyway, the most recent time it didn't come back alive...
Flashing N900 with 0xFFFF
Many parts of the N900 are Free Software, but lamentably, many parts are still closed proprietary shit. Nokia's maemo_flasher program is an example of a closed application that Nokia makes for use with the N900. I understand why some parts of their suite are still closed (e.g. pre-ofono GSM stack), but why the flasher has to be closed I have no idea. Gar.
Thankfully, there is The 0pen Free Fiasco Firmware Flasher, which is designed for flashing Nokia tablets and is Free Software (GPLv3). Unfortunately, 0xFFFF doesn't work with the N900. There is some progress to support the device. You can grab the most recent code from the mercurial repository thusly:
hg clone http://hg.youterm.com/0xFFFF
I sent the author of 0xFFFF the output of my crash. Hopefully it will soon be a usable tool for flashing the N900. I built RPMs for Fedora 12 x86_64 running the latest mercurial code--the ones in the Fedora repo aren't even the lastest tarball release (0.3.9 vs. 0.4.0).
- The 0xFFFF GUI uses gtkamlc. This is not packaged in Fedora. I built it, but compiling the GUI is still barfing.
Flashing with Nokia's Proprietary maemo_flasher
I now have ONE non-free program installed on my computer :( It's the only way I know how to debrick the phone.
See also: Updating tablet firmware on this wiki.
- To get the most recent image from Nokia, go here: http://tablets-dev.nokia.com/nokia_N900.php
- Enter product ID inside the phone (without "/"s)
- Grab RX-51_2009SE_1.2009.42-11_PR_COMBINED_MR0_ARM.bin or whatever is current.
- To get the proprietary stinking pile of poo, go here: http://tablets-dev.nokia.com/maemo-dev-env-downloads.php
- Grab maemo_flasher-3.5_2.5.2.2.tar.gz or most recent.
- In Fedora 12 x86_64 I had to install some i686 libraries since my system is 64-bit. So:
yum -y install glibc.i686 libusb.i686
- Untar the files....
- Power off phone and unplug USB.
- Hold down "u" on N900 keyboard and plug in USB cable between computer and N900. A USB icon will appear in the upper right corner--you can let go of "u" on the keyboard at this point.
- Run this as root:
./flasher-3.5 -F ~/devel/maemo/FLASH/RX-51_2009SE_1.2009.42-11_PR_COMBINED_MR0_ARM.bin -f -R
- Done.
Setup
Now that the device is debricked, I can use the thing again and "all" my data is there, but the repository setup is back to default and the applications I want are gone, amongst other things. To re-setup:
ssh server & keys
- Enable Extras repository: tap, tap, tap...
- Install openssh client/server package
- Install rootsh package
- Set up keys and such for easy access (my device hostname is burger):
- On laptop, ssh into the sucker:
ssh root@burger
- As root on N900, ssh to localhost as a quick/dirty way to setup /root/.ssh:
ssh localhost
- On laptop, copy over ssh key and log back in:
scp -p ~/.ssh/id_rsa.pub root@burger:.ssh/authorized_keys ssh root@burger
- To allow ssh access for user "user", the passwd file needs to be edited.
vi /etc/passwd
- Change
user:!:
to
user:*:
- Set a password for user "user" (I couldn't ssh in without doing this, but someone on IRC said it wasn't necessary):
passwd user
- Switch user to "user" and blow out the old known_hosts (or at least edit it) to remove the now bogus "localhost" entry:
su - user rm .ssh/known_hosts
- Quick/dirty way to set up /home/user/.ssh:
ssh localhost
- Then GTFO:
exit exit
- This should work happily
ssh user@burger
Packages
Set up Repositories
- Configure the repositories to set up things I like:
# vi /etc/apt/sources.list.d/hildon-application-manager.list deb https://downloads.maemo.nokia.com/fremantle/apps/ ./ deb https://downloads.maemo.nokia.com/fremantle/mr0 ./ deb http://repository.maemo.org/extras/ fremantle free non-free deb http://repository.maemo.org/extras-testing/ fremantle free deb http://repository.maemo.org/extras-devel/ fremantle free deb http://repository.maemo.org fremantle/tools free apt-get update
Apparently the above gets blown out if you run the hildon application manager, so the repos need to be added via tap tap tap.
Install Needed Packages
apt-get install x11vnc apt-get clean && sync
Mas y mas y mas
apt-get install vim bash htop ogg-support less file strace apt-get clean && sync
Perhaps
apt-get install python-dbus python-gobject apt-get clean && sync
Mas y mas y mas y mas y mas. The really big list...
mkdir /home/user/MyDocs/.apt-archive-cache/archives/ mkdir -p /home/user/MyDocs/.apt-archive-cache/archives/partial apt-get -o dir::cache=/home/user/MyDocs/.apt-archive-cache etc...
account-plugin-idle adblock-plus anki ankimaemi ankiqt attitude canola2 canola2-lastfm-plugin canola2-tuning-plugin canola2-youtube-plugin canola-thumbnailer conboy decoders-support easy-deb-chroot emerillon espeak fmradio gcompris gcompris-sound-en gcompris-sound-es gonvert google-album-art-downloader gpxview horizon kmplayer leafpad maemo-mancala maemo-mapper maemo-recorder maemo-recorder mancala mbarcode midori miniature mirror mplayer mtracker mytube pastebinit pidgin qik raeddit rapier recorder rsync sib supertux tuxpaint vncviewer xchat xournal zbar zoutube
Configuration
Here's some configuration settings that got lost on reflash. I'm not sure where they are stored, so they need to be re-setup via tap tap tap.
Display
- Settings-->Display-->Backlight time-out: 2 minutes
- Settings-->Display-->Lock screen automatically: uncheck
- Settings-->Display-->Display stays lit when charging: check
Text input
- Settings-->Text input-->Word completion: uncheck
- Settings-->Text input-->Auto-capitalization: uncheck
- Settings-->Text input-->Insert space after word: uncheck
- Settings-->Text input-->2nd language: Español (América Latina)
- Settings-->Text input-->Use dual dictionaries: check
Time Zone
- Settings-->Date and time-->Time Zone: Buenos Aires (this is unfortunately wrong due to incompetence of Argentine government)
- Settings-->Date and time-->Update automatically: leave unchecked for now. When timezone data gets fixed, check it.
Connectivity
- Settings-->Connectivity-->Internet connections-->Search interval: 5 minutes
General
- Settings-->General-->Device lock-->Change lock code (default is 12345)
Email Accounts
- Region: Argentina
- Service Provider: Gmail -- I broke down and got a gmail acct :(
- Account title: Gmail
- Name: Jeff Moe
- User name: jebbasan
- Password: foo
Misc
echo ":syntax on" > ~/.vimrc
- Uh, where should this be put, if no bash? In ~/.profile for busybox.
export TERM=xterm-color
- To remove the overcute hands shaking at bootup (and therefore boot faster), edit /etc/hildon-welcome.d/default.conf thusly:
[hildon-welcome] #filename=Hands-v32-h264.avi
You could also put in a different movie (playable by gstreamer), but a still image will not work.
VNC
VNC allows you to view the screen of the N900 on your laptop so you can do things more easily that having to use the tiny little thing if you are working on it all day.
- Set up the Extras-testing repository
- Install x11vnc (I think it's in -testing).
- Set up a password for VNC on on the N900:
x11vnc -storepasswd
- Run this script on your laptop (my hostname is burger and my laptop's IP is 10.0.0.3):
ssh -n user@burger \ "x11vnc \ -usepw \ -display :0 \ -desktop burger \ -allow 10.0.0.3 \ -nolookup \ -q \ -bg \ -o /home/user/vnc-log \ "
- This works fine with tigervnc on Fedora 12.
- Running x11vnc with "-ssl" does not work--I think the problem there may be with tigervnc as x11vnc starts with it OK.
- I usually do VNC in an ssh tunnel--I don't know if this would create too much of a load on the N900 or not. Will test.
- VNC behaves differently whether the keyboard is slid out or not. Basically, you want the keyboard out.
Backups
Thankfully, pre-bricking, I had made a backup. There are a billion different ways to do this, but one quick way is good old rsync. This script backs up everything except the cities directory, which is huge and is full of data I don't think I care about.
#!/bin/sh rsync \ -avv -ult --progress --stats \ --rsh=ssh \ --exclude /home/user/MyDocs/cities \ root@burger:/ \ /home/jebba/BACKUPS/burger/
Encoding Video
I had some video which played way too slow on the N900, so I re-encoded with this pile of cruft:
#!/bin/sh mencoder $1 -oac mp3lame -ovc lavc \ -lavcopts vcodec=mpeg4:mbd=1:vbitrate=300 -vf scale=352:208 \ -ffourcc DIVX -o $1-out.avi
Run thusly:
burger-encode ralf.mov
And it will give you "ralf-out.mov.avi"...Uh, I will have the output file get a reasonable name, of course... Works for now. This does not work on the N900 at the moment because the mencoder in the mplayer package is compiled without mp3lame support. Bah.
See also (where I got above from): Manual_video_encoding.
DBUS
Here's a number of dbus examples that can be run as simple shell scripts. When running them they should be run with `run-standalone.sh` in front of them to set up the environment correctly. Otherwise they may barf when run from cron, startup, install scripts, etc. They run fine when run as user "user" without `run-standalone.sh`. Example:
run-standalone.sh dbus-send /foo bar 'boo'
dbus-send-call-start-ui
dbus-send --print-reply --type=method_call --dest=com.nokia.HildonDesktop.AppMgr /com/nokia/HildonDesktop/AppMgr com.nokia.HildonDesktop.AppMgr.LaunchApplication string:'rtcom-call-ui'
dbus-send-deactivate-led
Dunno if this works.
dbus-send --system --type=method_call --dest=com.nokia.mce /com/nokia/mce/request com.nokia.mce.request.req_led_pattern_deactivate string:PatternCommunicationChat
dbus-send-disconnect-net
dbus-send --system --dest=com.nokia.icd /com/nokia/icd_ui com.nokia.icd_ui.disconnect boolean:true
dbus-send-email-new
dbus-send --print-reply --type=method_call --dest=com.nokia.modest /com/nokia/modest com.nokia.modest.MailTo string:mailto:
dbus-send-email-tx-rx
Doesn't work
dbus-send --session --type=method_call --dest=com.nokia.osso_email /com/nokia/osso_email com.nokia.osso_email.send_and_receive
dbus-send-get-imei
dbus-send --system --print-reply --type=method_call --dest=com.nokia.phone.SIM /com/nokia/phone/SIM/security Phone.Sim.Security.get_imei
dbus-send-google
dbus-send --system --type=method_call --dest="com.nokia.osso_browser" --print-reply /com/nokia/osso_browser/request com.nokia.osso_browser.load_url string:"google.com"
dbus-send-hello-world
dbus-send --print-reply \ --type=method_call --dest=org.freedesktop.Notifications \ /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteDialog \ string:'Hello, world!' uint32:0 string:'NAO OK!'
dbus-send-im-here
dbus-send --type=method_call --print-reply --dest=org.freedesktop.Telepathy.MissionControl /org/freedesktop/Telepathy/MissionControl org.freedesktop.Telepathy.MissionControl.SetPresence uint32:2 string:"I'm here"
dbus-send-lock
dbus-send --print-reply --system --type=method_call --dest=com.nokia.system_ui /com/nokia/system_ui/request com.nokia.system_ui.request.devlock_open string:'com.nokia.mce' string:'/com/nokia/mce/request' string:'com.nokia.mce.request' string:'devlock_callback' uint32:'3'
dbus-send-media-play
dbus-send --print-reply --dest=com.nokia.mediaplayer /com/nokia/mediaplayer com.nokia.mediaplayer.mime_open string:"file:///$1"
dbus-send-music-pause
dbus-send --dest=com.nokia.osso_media_server /com/nokia/osso_media_server com.nokia.osso_media_server.music.pause
dbus-send-notification
Usage:
dbus-send-notification "foo bar boo bah bang"
dbus-send --print-reply \ --type=method_call --dest=org.freedesktop.Notifications \ /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteDialog \ string:"$1" uint32:0 string:'NAO OK!'
dbus-send-pause-panucci
dbus-send --type="method_call" --dest=org.panucci.panucciInterface /panucciInterface org.panucci.panucciInterface.playPause
dbus-send-reboot
dbus-send --system --type=method_call --dest="com.nokia.mce" --print-reply "/com/nokia/mce/request" com.nokia.mce.request.req_reboot
dbus-send-regist-status
dbus-send --system --print-reply --type=method_call --dest='com.nokia.phone.net' /com/nokia/phone/net Phone.Net.get_registration_status
dbus-send-show_conn
dbus-send --print-reply --system --dest=com.nokia.icd_ui /com/nokia/icd_ui com.nokia.icd_ui.show_conn_dlg boolean:true
dbus-send-shutdown
dbus-send --system --type=method_call --dest="com.nokia.mce" --print-reply "/com/nokia/mce/request" com.nokia.mce.request.req_shutdown
dbus-send-speaker-off
dbus-send --type=method_call --dest=com.nokia.osso_hp_ls_controller /com/nokia/osso_hp_ls_controller com.nokia.osso_hp_ls_controller.loudspeaker.force_ loudspeaker_off
dbus-send-speaker-on
dbus-send --type=method_call --dest=com.nokia.osso_hp_ls_controller /com/nokia/osso_hp_ls_controller com.nokia.osso_hp_ls_controller.loudspeaker.force_ loudspeaker_on
dbus-send-task-switcher
dbus-send --type=signal --session /com/nokia/hildon_desktop com.nokia.hildon_desktop.exit_app_view
dbus-send-unlock
dbus-send --system --type=method_call --dest=com.nokia.mce /com/nokia/mce/request com.nokia.mce.request.req_tklock_mode_change string:"unlocked"
dbus-send-unlock2
dbus-send --print-reply --system --type=method_call --dest=com.nokia.system_ui /com/nokia/system_ui/request com.nokia.system_ui.request.devlock_close string:'com.nokia.mce' string:'/com/nokia/mce/request' string:'com.nokia.mce.request' string:'devlock_callback' uint32:'0'
Gripes
- Not all Free Software....
- 256M of NAND is way too little if it is going to be the root filesystem (/). It is way to easy to fill up. I see that they need to do this for reflashing, but since on reflash all the applications in /opt get lost anyway, what good does it do to have them there? Seems they could have mounted /usr on the 32G, or even better just put /boot on NAND and in that case NAND could even be smaller. Seems very dumb to have 32G+ of space on the device, yet still fill up the rootfs! The vast majority of users are going to have no clue how to repartition (which I will do here shortly) and aren't going to be able to install many applications, which should be a great strength of this device since it can multitask so well and the repositories are going to blossom
- 4 rows of keys would have been a lifesaver.
- No | (pipe) or tab key
- The camera doesn't autofocus, or at least not when you need it to.
- When charging the phone and talking on it, the power cable is sticking out the top, not the bottom.
- No dictionary/translation program (!)
- Docs, info, contacts, etc. are spewed all over the place. For instance, try to find out info about Canola. Some on this wiki, some in garage, some at their site, etc. Where does one file a bug? I've been told to ignore garage and do most at *.maemo.org, but then they should ditch those parts at garage to make things cleaner.
- SDK pretty much assumes you are running 32-bit Debian or Ubuntu. It's not really cooperating nicely in a Debian Lenny install inside qemu.
Bugs
Bugs to file
Broken
- After reflash, extra apps are still in /opt, but are "missing" since the symlinks from /usr/bin are gone.
- More steps needed - which exact apps, did you restore from Backup? --andre
- Saving preferences in xchat crashes.
- I can confirm this, but I don't know if the Maemo port of xchat has a separate bugtracker in garage.maemo.org --andre
- "Clear private data on exit" in Midori doesn't actually clear ~/.cache/midori/web (!). I spoke to packager (kalikiana) on IRC and he said he would look into it.
`rm -rf ~/.cache/midori ; rm -rf ~/.config/midori` Start midori. Go to some website. Click "Tools". Click "Clear Private Data". Check "Clear private data when quitting Midori" (but DON'T click "Clear private data" button). Tap blurry part at top to close private data window. Exit Midori. `ls -R ~/.cache/midori/web` and see the .pngs or whatever.
- `less`, `vim` etc. don't see to like $TERM=rxvt-unicode. Using $TERM=xterm-color works fine. Probably not worth filing a bug...
- vi is available via default, but not vim. Feel free to file a bug report with exact steps. --andre
- maemo-mapper is slow as snot. Unusable. The default map application is non-free.
- lcuk: package liqcontrolpanel's summary is "short description". Package should be removed entirely.
- Image viewer: 1) rotate image 2) view thumbnail. Image doesn't get rotated in thumbnail in *some* cases.
- Maps viewer (OVI): The program is running ok in Spanish, but map data is in English (e.g. "South Pacific Ocean" "South America"). I first ran the program in English, but have subsequently set the system to Spanish.
RFEs
- Package manager can only install one package at a time (in contrast to how synaptic does it, for example).
- https://bugs.maemo.org/show_bug.cgi?id=601 . Feel free to vote. --andre
- In package manager you have to keep scrolling down to the package you want. You can't just hit "r" for example and have it scroll to "r" in the list of packages. This is actually pervasive throughout Maemo 5. It seems to only really do this in Contacts app.
- https://bugs.maemo.org/show_bug.cgi?id=5388 . Feel free to vote. --andre
- It totally sucks that if someone steals your phone, they pretty much own you. At least /home/user/MyDocs should be encrypted. Ideally this would be done with LUKS and decrypt at boot with a password. Perhaps encryptfs
- https://bugs.maemo.org/show_bug.cgi?id=6030 is related for Mail storage - feel free to file a new enhancement request --andre
- In Contacts app, it always shows a SMS button for phone numbers, even if they are landlines.
- https://bugs.maemo.org/show_bug.cgi?id=6375 - probably WONTFIX for convenience reasons --andre
- Need a #maemo-devel channel too, as #maemo is noisy...
- xchat is totally not tweaked for maemo, such as scrolling...
- mplayer should use pulsebarfaudio by default, not alsa:
echo "ao = pulse" > ~/.mplayer/config
- Media Player doesn't thumbnail videos after they are taken with the N900 camera/video app. It didn't after closing and re-opening app, but I see they are now thumbnailed (post flashing). Anyway, it should do them "immediately".
- Lots of internationalization packages are taking up space needlessly. But if, for example, Swedish Calendar support is removed, it wants to remove the whole calendar. The i10n packages should be removable without removing the whole app.
- OGG support out-of-the-box. I mean, c'mon now...
- Political reasons - see https://bugs.maemo.org/show_bug.cgi?id=176 --andre
- App Manager should include $LICENSE in Description.
- Worth an enhancement request, explaining why you want this --andre
- qik.com doesn't work with gnash (I mailed them and they mailed back saying, uh, ya, sorry).
- Continual autofocus on camera (apparently hardware limitation??)
- Sounds like https://bugs.maemo.org/show_bug.cgi?id=5688 ? Fixed after 42-11 release. --andre
Bugs of Note
Here's a few bugs of interest to me. Please vote for them. :)
Argentina Time Zone
- Buenos Aires, Argentina time off by 1 hour
- Inital setup time zone: America Latina only lists cities in Mexico
Calendar/Tasks
- RFE: Show calendar when selecting dates in Tasks/Calendar
- Provide bi-daily/weekly/monthly recurrences
- Add option to select multiple days on weekly repeating events.
- Add relative day option for monthly repeating events (e.g. "1st Monday of month")
Chat & Call & SMS
- Zoom in/out in IM chat does not reflow contents ("Carolina's bug")
Contacts
Canola
Desktop
Mailing Lists
diff/busybox
wiki
lsb-core
- No getopts, called by init-functions (lsb-core) - breaks `/etc/init.d/asterisk start` (asterisk 1.6)
Applications to package
Package these or get someone to do it.
- colordiff
- fantasdic - dictionary
- git
- some video conferencing app (telepathy-gabble), jingle etc.
- asterisk! - I have asterisk 1.2.27.1 built and running. Needs work for sure, but it workz
Connected to Asterisk 1.4.27.1-1 currently running on Nokia-N900-42-11 (pid = 3016)
- tangogps - "an easy to use, fast and lightweight mapping application for use with or without GPS."
- Babiloo - offline dictionary
- Take a look at the various OpenMoko (OpenSnot) applications
- boa - lightweight webserver (cute)
SDK
There are a couple different SDKs (at least) that can be used. I have the main/standard SDK up and running on Fedora 12 x86_64. It is based on Scratchbox 1. There is another SDK, Maemo SDK+, which is based on Scratchbox 2, but I don't have that working yet.
Installing Maemo 5 SDK on Fedora 12 x86_64
Prepare host system
Add "vdso32=0" to your kernel bootline so it looks something like this (I also have selinux disabled). Edit /boot/grub/grub.conf. You have to reboot for it to take effect.
kernel /vmlinuz-2.6.31.6-145.fc12.x86_64 ro root=/dev/sda2 selinux=0 quiet rhgb nompath nodmraid SYSFONT=latarcyrheb-sun16 LANG=en_US.UTF-8 KEYTABLE=la-latin1 vdso32=0
Install Xephyr
sudo yum -y install Xephyr
Download and patch wizard
Grab the wizard script.
wget http://repository.maemo.org/stable/5.0/maemo-sdk-install-wizard_5.0.py chmod +x maemo-sdk-install-wizard_5.0.py
Apply this patch to maemo-sdk-install-wizard_5.0.py:
--- maemo-sdk-install-wizard_5.0.py.orig 2009-11-16 08:16:39.000000000 -0300 +++ maemo-sdk-install-wizard_5.0.py 2009-12-04 17:29:00.905719892 -0300 @@ -2308,7 +2308,7 @@ tries = 2 while (True): try: - exec_cmd(sb_installer_fn + opt) + exec_cmd(sb_installer_fn + opt + "-s " + SB_PATH) except: tries -= 1 if tries: @@ -2348,7 +2348,7 @@ # do the installation thing - cmd = "%s -d -m %s" % (sdk_installer_fn, self.__sdk_inst_m_opt_arg) + cmd = "%s -d -m %s -s %s" % (sdk_installer_fn, self.__sdk_inst_m_opt_arg, SB_PATH) if self.__targets_exist: if self.__remove_targets:
Run wizard, run
Then start up the install wizard:
sudo ./maemo-sdk-install-wizard_5.0.py
In SDK install wizard GUI:
- Next
- Custom Installation, Commit
- Gar, Next
- Install anyway, Next
- User jebba, Next
- Install options, Next
- VDSO suport, I accept, Next (though I did boot with vdso=32 ...)
- Development environment, Next
- Accept barf, Next (gah)
- It will then download everything and install. Perhaps a couple Nexts and it is done.
"No dpkg" error
If you get the following error, it is because your maemo-sdk-install-wizard_5.0.py script didn't get patched correctly, as above.
which: no dpkg in (/usr/bin:/bin) dpkg tool in path... no E: This script requires dpkg to install .deb files. V [17:19:35 04.12.2009]: Installer execution failed V [17:19:35 04.12.2009]: ----- Begin logging exception ----- Traceback (most recent call last): File "./maemo-sdk-install-wizard_5.0.py", line 2705, in run task( ) File "./maemo-sdk-install-wizard_5.0.py", line 2318, in __taskInstallScratchbox raise Exception("Installer execution failed") Exception: Installer execution failed V [17:19:35 04.12.2009]: ----- End logging exception ----- V [17:19:35 04.12.2009]: Executor set exit status to (status_error)
See also:
- SDK Installation
- Maemo 5 SDK on Fedora 12
- Maemo 5 SDK on Fedora on Maemo talk.
Running Maemo 5 SDK on Fedora 12 x86_64
Now that the SDK is happily installed, you can run it.
New Group sbox
In the terminals where you will be running commands you need to run this to show up in the sbox group. Any subsequent times you log out and in you don't need to run it again (in other words, you just have to run this when you first set things up):
newgrp sbox
Start Scratchbox & Xephyr & Login
After installation scratchbox is "booted" up. Subsequently (e.g. after a reboot of your laptop) you will need to start it thusly:
sudo /scratchbox/sbin/sbox_ctl start
Get Xephyr going, which is the X server. Note the Fedora 12 version doesn't have the "-kb" optioned mentioned in other docs.
Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac
Log in to Scratchbox:
/scratchbox/login
This should give you a prompt like this:
[sbox-FREMANTLE_X86: ~] >
Then to launch the emulated GUI, run this at the above prompt:
af-sb-init.sh start
Then you should have the emulator up and running! :)
Using SDK
Frequently Used Commands
Build binary package:
cd foo-1.2.3 dpkg-buildpackage -rfakeroot -b -uc
Build source package:
cd foo-1.2.3 dpkg-buildpackage -rfakeroot
Switch to build for ARM:
sb-conf select FREMANTLE_ARMEL
Switch to build for x86:
sb-conf select FREMANTLE_X86
Kill off things running if it won't let you switch between ARM/x86:
sb-conf killall
Grab and start building a source package:
apt-get -b source foo
File that describes package being built:
vim foo-1.2.3/debian/control
File that has build rules (e.g. where ./configure is):
vim foo-1.2.3/debian/rules
File that lists patches to be used:
vim foo-1.2.3/debian/patches/series
Source Repositories
One of the "easiest" ways to get things built is to just check to see if it is in any of the Debian repositories and just pillage it from there. Grabbing it from an "old" repository and building it will be easiest because the dependencies are more likely to be the same. Grabbing it from the latest and greatest repository means you will get the most recent version of the package, but will probably have to go through and sort out more dependencies.
Note, you (or I) probably don't want to add the binary repositories to your build environment or you may cause some total chaos in your system. In this case, I am only adding the source repositories.
These are the source repos I added to /etc/apt/sources.list. Note that you have to do this within both architectures (x86/ARM) as they don't share the same sources.list.
# Etch #deb-src http://ftp.ccc.uba.ar/pub/linux/debian/debian/ etch main contrib # Etch Backports #deb-src http://www.backports.org/debian etch-backports main contrib # Stable Lenny #deb-src http://ftp.ccc.uba.ar/pub/linux/debian/debian/ stable main contrib #deb-src http://ftp.ccc.uba.ar/pub/linux/debian/debian/ lenny main contrib # Testing Squeeze #deb-src http://ftp.ccc.uba.ar/pub/linux/debian/debian/ testing main contrib deb-src http://ftp.ccc.uba.ar/pub/linux/debian/debian/ squeeze main contrib # Unstable sid #deb-src http://ftp.ccc.uba.ar/pub/linux/debian/debian/ unstable main contrib #deb-src http://ftp.ccc.uba.ar/pub/linux/debian/debian/ sid main contrib
Some of the same repos above are listed twice, just to help me keep straight all of Debian's releases. For example "sid" and "unstable" are the same thing. Explanation:
- Etch - This is what the SDK is based on. It was released in 2007. Version 4.0. ("oldstable").
- Etch Backports - These are packages which aren't in Etch, or at least not updated to the latest and greatest in Etch, but people "outside" of the Debian project maintain more recent packages. For example, they may have a more recent version of a web browser when Debian's Etch just backports patches to an ancient version.
- Lenny - This is the "stable" version of Debian. Version 5.0. Released February 2009.
- Squeeze - This is the "testing" version of Debian and when it is fully done will be the "stable" release and will be version 6.0.
- Sid - This version will never be stable nor "released" and is always on the bleeding edge. The latest, most recent packages are in this repository. This is like "rawhide" in Fedora and -current in OpenBSD.
maemo-optify
Tools to make using /opt convenient for Debian packages.
git clone git://gitorious.org/maemo-af/maemo-optify.git
Maemo-optify is available in the repos and you can apt-get it from within scratchbox, but the .deb is missing the maemo-optify-buildpackage script. I emailed the author to let him know. In the interim, grab it from git, and:
cp -p maemo-optify-buildpackage /usr/local/bin
To use it is super-simple, and worked for me without hassle with asterisk:
echo auto > asterisk-1.6.1.11/debian/optify maemo-optify-buildpackage -rfakeroot -b -uc maemo-optify-buildpackage -rfakeroot -S
Uh, I also want files of all sizes to be moved to /opt, not just ones above 2048 bytes. Asterisk has 600k of files still, since it has lots of sound files smaller than 2k. There is a forthcoming option to define this in debian/optify, but that feature isn't in place yet. So in the interim remove the maemo-optify packages (from both X86 and ARM), and use this "patch":
--- maemo-optify/maemo-optify 2009-12-04 21:30:51.770927951 -0300 +++ /usr/local/bin/maemo-optify 2009-12-06 17:39:22.000017316 -0300 @@ -127,7 +127,7 @@ dbg "link, nope\n"; } elsif (! ($entry eq "." || $entry =~ /^.\/usr/)) { dbg "not in /usr, nope\n"; - } elsif ($size >= 2048) { + } elsif ($size >= 0) { if (!blacklisted ($entry)) { dbg "yes, saved $size bytes\n"; $total_count += 1;
Upload to extras-devel
Uploading to extras-devel - I submitted a form for permission to upload...waiting....
See also
- Getting started UI Tutorial (legacy?)
- Maemo Packaging Policy - Still current?
Configure Scratchbox environment
Within scratchbox:
echo ":syntax on" > ~/.vimrc echo ":set paste" >> ~/.vimrc echo "export TERM=xterm-color" >> ~/.bashrc
SDK+
This is the "alternative" SDK based on Scratchbox 2. I don't have it working yet on Fedora 12 x86_64. It complains and says it just works on i386 ARCH.
Maemo SDK+ - Alternative SDK for Maemo based on Scratchbox 2.
http://maemo-sdk.garage.maemo.org/maemo-sdk-installer.py chmod +x maemo-sdk-installer.py sudo ./maemo-sdk-installer.py install -g
Hmm. Well, this is crashing and burning on x86_64:
$ sudo ./maemo-sdk-installer.py install -g Operating system's machine or word size (x86_64) is not supported. These are supported: ['i386', 'i686'] System check failed!
Things possibly needed:
yum -y install redhat-lsb
debootstrap
Perhaps I should install this sucker in an etch chroot...
yum -y install debootstrap debootstrap --arch=i386 etch /home/jebba/devel/etch-i386 http://ftp.ccc.uba.ar/pub/linux/debian/debian/
HOWTO?
- Make a phone call with a shell script (dbus / telepathy). Ask qwerty12.
qwerty12: jebbajeb: The dbus-send foo for bringing up the UI with a pre-defined number is in the IRC logs, somewhere. But, no, I don't know it myself
Random
- irc.freenode.net #maemo #canola
- Under the battery there are two sets of gold "dots" on the motherboard. What are these for? JTAG? USB? Serial???
- SDK hung forever after download at: "Preconfiguring packages".
- Can Maemo be installed on Sharp Netwalker, since Ubuntu on that thing is suck a terrible dog by comparison?
- IRC #maemo trolls to /ignore: luke-jr, PaulFertser, Klowner_, TommyBres
- lshal
- Change boot thing: /etc/hildon-welcome.d