<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://maemo.octonezd.me/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=212.90.177.150</id>
	<title>Maemo Wiki Mirror - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://maemo.octonezd.me/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=212.90.177.150"/>
	<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php/Special:Contributions/212.90.177.150"/>
	<updated>2026-04-22T02:11:09Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=N900_Hardware_USB_Host&amp;diff=28089</id>
		<title>N900 Hardware USB Host</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=N900_Hardware_USB_Host&amp;diff=28089"/>
		<updated>2010-11-15T17:12:34Z</updated>

		<summary type="html">&lt;p&gt;212.90.177.150: /* Demos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for those working on the implementation of friendly USB host mode.&lt;br /&gt;
&lt;br /&gt;
See also [https://garage.maemo.org/projects/h-e-n/ the garage project].&lt;br /&gt;
&lt;br /&gt;
==Status==&lt;br /&gt;
USB Host mode has reached beta status, and is working reliably with manual speed switching.&lt;br /&gt;
&lt;br /&gt;
Proper host mode would only require the normal cable, and a commonly available adapter. ([http://cgi.ebay.co.uk/ws/eBayISAPI.dll?ViewItem&amp;amp;item=250641334947 USB A-A adaptor])&lt;br /&gt;
&lt;br /&gt;
A pre-alpha of hostmode was released on the 23rd of September, here: http://talk.maemo.org/showthread.php?p=824298&lt;br /&gt;
&lt;br /&gt;
This release is unreliable, and an implementation of proper host mode is likely to be much more stable.&lt;br /&gt;
&lt;br /&gt;
A beta release, based on Paul&#039;s completely rewritten patches (see h-e-n&#039;s garage repository) was released on the 7th of November, and is the closest release yet to proper hostmode, http://talk.maemo.org/showthread.php?t=65232&lt;br /&gt;
&lt;br /&gt;
There are several parts to getting USB host mode working for normal users.&lt;br /&gt;
&lt;br /&gt;
Some of these are quite easy, many are not.&lt;br /&gt;
&lt;br /&gt;
* Kernel modifications to make USB host work properly [done, thanks to Paul]&lt;br /&gt;
&lt;br /&gt;
* USB modules for supporting hardware.  This is fairly simple for most hardware - some hardware modules will not compile cleanly on ARM, and binary drivers that allow you to use windows drivers with some stuff will never work.&lt;br /&gt;
&lt;br /&gt;
For most drivers, if a particular driver does not work, it&#039;s generally a bug in the driver that should be fixed by that drivers maintainer.&lt;br /&gt;
&lt;br /&gt;
* Understanding and reverse engineering [[N900_Software_BME|BMEs (Battery managment Entity)]] interaction with the hardware.    &lt;br /&gt;
&lt;br /&gt;
This is in progress. All of the hardware required to make a BME clone is understood. &lt;br /&gt;
&lt;br /&gt;
* Usermode software. &lt;br /&gt;
** The current software will not do the right thing if the user plugs in almost all devices - even if hostmode worked. To make a mouse work, you might want to enable a pointer for example.&lt;br /&gt;
&lt;br /&gt;
==Ideas for hostmode user-software==&lt;br /&gt;
When an external power supply is found, the following should be done in sequence.&lt;br /&gt;
&lt;br /&gt;
*If the supply is a charger (D+,D- short, detected by the 1707a), fast charge.&lt;br /&gt;
*Attempt to enumerate as a device, if this succeeds (including handling of suspended busses), then enumerate and charge as a device, respecting the enumerated current.&lt;br /&gt;
*If enumeration as a device, and charger detection have failed, we may be plugged into a hub or device with reverse power. Attempt to enumerate connected devices. Charge at user-defined maximum current. For example - may be a 500mA power supply also supplying the hub and a keyboard = 2 unit loads - max draw = 300mA.&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
Install hostmode-gui from -devel, your kernel will be replaced.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;apt-get install hostmode-gui&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[Update]&lt;br /&gt;
&lt;br /&gt;
&amp;quot;The most recent h-e-n pkg itself should come &#039;&#039;&#039;without any kernel&#039;&#039;&#039; now (just the GUI), and - as mentioned in a previous post - h-e-n doesn&#039;t plan to ship any dedicated hostmode kernels anymore, and &#039;&#039;&#039;recommends using power kernel&#039;&#039;&#039; instead.&lt;br /&gt;
The GUI will check if a compatible kernel is installed, and will notify to user if problems are detected (with hostmode support in whatever is the currently installed kernel).&lt;br /&gt;
&lt;br /&gt;
Of course a mere update of h-e-n pkg won&#039;t magically switch from h-e-n hostmode kernel to power kernel. You have to care for that yourself.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;A help window is available and will guide you through the steps needed.&lt;br /&gt;
The mount button is currently hardcoded to mount /dev/sda1, default for most USB flash drives and HDDs.&lt;br /&gt;
For NTFS support, do modprobe ntfs as root&lt;br /&gt;
For ISO (CDs/DVDs - most of them), do modprobe isofs (also as root).&lt;br /&gt;
CDs will have the dev node /dev/sr0, so you&#039;ll need to do mount /dev/sr0 /mnt etc...&lt;br /&gt;
Disabling tracker by adding /media/flash to tracker-cfg&#039;s non watch configuration is recomended, use tracker-cfg UI.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Devices ==&lt;br /&gt;
You can plug-in almost anything into a usb port of the n900. However, many devices require a special driver in order to work. The custom kernel already provides basic drivers for devices such as:&lt;br /&gt;
&lt;br /&gt;
* USB Storage(cd-roms, flash drives, hdd, etc)&lt;br /&gt;
* USB HID(Keyboards, mice, joysticks, touchpads, etc)&lt;br /&gt;
&lt;br /&gt;
== Demos ==&lt;br /&gt;
* http://www.youtube.com/watch?v=zDzUG-bno6Q by MohammadAG (usb CD-ROM)&lt;br /&gt;
* http://www.youtube.com/watch?v=6ED92orZLMM by divan0 (usb flash drive)&lt;br /&gt;
* http://www.youtube.com/watch?v=1Qfx_jaQ9jo by divan0  (usb HDD via usbhub)&lt;br /&gt;
* http://www.youtube.com/watch?v=ua5xpTZJpwo by divan0 (usb mouse)&lt;br /&gt;
* http://www.youtube.com/watch?v=9byE_qTl15M by divan0 (usb keyboard)&lt;br /&gt;
* http://www.youtube.com/watch?v=0YPk4Y0ZPQY by divan0 (usb card reader)&lt;br /&gt;
&lt;br /&gt;
==Hostmode development team:==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Project Admins:&#039;&#039;&#039;&lt;br /&gt;
*Joerg Reisenweber&lt;br /&gt;
*Paul Fertser&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Developers:&#039;&#039;&#039;&lt;br /&gt;
*Chitrang Srivastava&lt;br /&gt;
*Dave na&lt;br /&gt;
*Hagen Meyer&lt;br /&gt;
*Ian Stirling&lt;br /&gt;
*Jacek Milewicz&lt;br /&gt;
*Klaus Kurzmann&lt;br /&gt;
*Mohammad Abu-Garbeyyeh&lt;br /&gt;
*Mugur Enache&lt;br /&gt;
*Sarah Newman&lt;br /&gt;
*Sonny Jim&lt;br /&gt;
*Tom Tanner &lt;br /&gt;
&lt;br /&gt;
Most information is taken from [http://talk.maemo.org/showthread.php?t=65232 this thread] created by MohammadAG&lt;br /&gt;
&lt;br /&gt;
[[category:N900_Hardware]]&lt;/div&gt;</summary>
		<author><name>212.90.177.150</name></author>
	</entry>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Preenv/FAQ&amp;diff=32686</id>
		<title>Preenv/FAQ</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Preenv/FAQ&amp;diff=32686"/>
		<updated>2010-10-28T14:13:01Z</updated>

		<summary type="html">&lt;p&gt;212.90.177.150: /* How to get NFSU Working? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==How to install Preenv?==&lt;br /&gt;
&lt;br /&gt;
Gain [[root access]] and use &amp;lt;code&amp;gt;apt-get&amp;lt;/code&amp;gt; in the [[terminal]]:&lt;br /&gt;
 $ root&lt;br /&gt;
 # apt-get install preenv&lt;br /&gt;
 # exit&lt;br /&gt;
&lt;br /&gt;
== What do I use to extract an ipk file? ==&lt;br /&gt;
&lt;br /&gt;
[http://7-zip.org 7-zip] or any other tool able to extract Debian packages (dpkg, file-roller, ...)&lt;br /&gt;
&lt;br /&gt;
Here is the Video guide on how to install WebOS games to the N900 http://www.youtube.com/watch?v=pGQwWZ_VriA&lt;br /&gt;
&lt;br /&gt;
Or you can follow the steps below....&lt;br /&gt;
&lt;br /&gt;
==How to install a game==&lt;br /&gt;
&lt;br /&gt;
use 7-zip to extract -&amp;gt; game-folder&lt;br /&gt;
&lt;br /&gt;
Copy the game folder to &amp;lt;code&amp;gt;/home/user/[webOS-games]&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 $ sudo gainroot&lt;br /&gt;
 $ cd game-folder&lt;br /&gt;
 $ chmod a+x filename&lt;br /&gt;
&lt;br /&gt;
e.g. &amp;lt;code&amp;gt;filename&amp;lt;/code&amp;gt; = &amp;lt;code&amp;gt;nfsuc&amp;lt;/code&amp;gt; in need for speed case or sims in case of sims3&lt;br /&gt;
&lt;br /&gt;
 $ preenv&lt;br /&gt;
 $ ./filename&lt;br /&gt;
&lt;br /&gt;
Once you know that the file plays properly. you can add the menu button:&lt;br /&gt;
&lt;br /&gt;
 $ sudo gainroot&lt;br /&gt;
 # preenv&lt;br /&gt;
 # desktopgen game-folder/appinfo.json&lt;br /&gt;
 # exit&lt;br /&gt;
&lt;br /&gt;
==How to delete a game==&lt;br /&gt;
&lt;br /&gt;
Enter preenv and cd into the game folder:&lt;br /&gt;
 $ preenv&lt;br /&gt;
 $ cd game-folder&lt;br /&gt;
&lt;br /&gt;
Become root and use desktopgen to delete game icons:&lt;br /&gt;
 $ root&lt;br /&gt;
 # preenv&lt;br /&gt;
 # desktopgen -r appinfo.json&lt;br /&gt;
 # exit&lt;br /&gt;
 # exit&lt;br /&gt;
&lt;br /&gt;
Now you can delete the game folder itself:&lt;br /&gt;
 $ cd ..&lt;br /&gt;
 $ rm -r game-folder&lt;br /&gt;
&lt;br /&gt;
=== Deleting games installed with old preenv 0.1 ===&lt;br /&gt;
&lt;br /&gt;
Become root and delete the folder:&lt;br /&gt;
 $ sudo gainroot&lt;br /&gt;
 $ rm -r game-folder&lt;br /&gt;
&lt;br /&gt;
To remove the icon, you need to delete three files:&lt;br /&gt;
 $ rm /usr/share/applications/hildon/filename.desktop&lt;br /&gt;
 $ rm /usr/share/dbus-1/services/filename.service&lt;br /&gt;
 $ rm /usr/share/icons/hicolor/scalable/hildon/filename.png&lt;br /&gt;
&lt;br /&gt;
Refresh your menu:&lt;br /&gt;
 $ killall hildon-desktop&lt;br /&gt;
&lt;br /&gt;
==How to get N.O.V.A working?==&lt;br /&gt;
&lt;br /&gt;
Install extra packages for N.O.V.A, then follow the regular install guide.&lt;br /&gt;
&lt;br /&gt;
 $ sudo gainroot&lt;br /&gt;
 $ apt-get update&lt;br /&gt;
 $ apt-get install libsdl-net1.2&lt;br /&gt;
&lt;br /&gt;
==How to get Monopoly Classic working with an icon?==&lt;br /&gt;
&lt;br /&gt;
After installation and creating an icon, lastly follow it with this step&lt;br /&gt;
&lt;br /&gt;
 $ cd *monopoly&lt;br /&gt;
 $ chmod 777 monopolyclassic/save&lt;br /&gt;
&lt;br /&gt;
== How to get NFSU Working? ==&lt;br /&gt;
&#039;&#039;&#039;Easy way:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
install [http://maemo.org/packages/view/nfsu-installer/ nfsu-installer] from extras-devel via Application Manager and run it. See [http://www.youtube.com/watch?v=-f-a-7yakkM youtube video] on how it works.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Manual way:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
get root&lt;br /&gt;
 root&lt;br /&gt;
install preenv and OpenGLES1 (need extras-devel)&lt;br /&gt;
 apt-get install libgles1 preenv&lt;br /&gt;
create main game dir on eMMC card&lt;br /&gt;
 mkdir -p /home/user/MyDocs/Games/nfs&lt;br /&gt;
go to that dir and copy dowloaded .ipk file from desktop (or download directly here)&lt;br /&gt;
 cd /home/user/MyDocs/Games/nfs&lt;br /&gt;
 scp user@COMPUTER:/path/to/game/com.ea.app.nfsuc_20.0.28_all.ipk /home/user/MyDocs/Games/nfs&lt;br /&gt;
create file for loopback mount&lt;br /&gt;
 dd if=/dev/zero of=/home/user/MyDocs/Games/nfs/nfsu.ext2 count=120 bs=1024k&lt;br /&gt;
create ext2 filesystem on it&lt;br /&gt;
 mkfs.ext2 /home/user/MyDocs/Games/nfs/nfsu.ext2&lt;br /&gt;
press &#039;y&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
make mountpoint&lt;br /&gt;
 mkdir /mnt/nfsu&lt;br /&gt;
save it to the fstab &lt;br /&gt;
 echo -e &amp;quot;/home/user/MyDocs/Games/nfs/nfsu.ext2\t/mnt/nfsu\text2\tloop,auto\t0\t0&amp;quot; &amp;gt;&amp;gt; /etc/fstab &lt;br /&gt;
finally, mount it&lt;br /&gt;
 mount  /mnt/nfsu/&lt;br /&gt;
create symlynk from /usr/palm (NFSU installs there)&lt;br /&gt;
 ln -s /mnt/nfsu/ /usr/palm&lt;br /&gt;
extrack .ipk file&lt;br /&gt;
 dpkg -X /home/user/MyDocs/Games/nfs/com.ea.app.nfsuc_20.0.28_all.ipk /mnt/nfsu/&lt;br /&gt;
make binary executable&lt;br /&gt;
 chmod +x /mnt/nfsu/applications/com.ea.app.nfsuc/nfsuc&lt;br /&gt;
create desktop launcher&lt;br /&gt;
 desktopgen /mnt/nfsu/applications/com.ea.app.nfsuc/appinfo.json&lt;br /&gt;
&lt;br /&gt;
== Unable to connect to USB after above method? ==&lt;br /&gt;
&lt;br /&gt;
If after following the following tutorial, you are unable to connect your N900 to your PC&#039;s USB, open xterm on your device:&lt;br /&gt;
&lt;br /&gt;
get root&lt;br /&gt;
 root&lt;br /&gt;
unmount the image file&lt;br /&gt;
 umount /mnt/nfsu&lt;br /&gt;
&lt;br /&gt;
Once you&#039;re done with USB you can remount the image&lt;br /&gt;
 mount /mnt/nfsu&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;br /&gt;
&lt;br /&gt;
== Save space (Transfer games to MyDocs folder) ==&lt;br /&gt;
&lt;br /&gt;
If running out of space in the /home/user/[webos] directory, part of the game that usually takes up the most space can be copied to /home/user/MyDocs. &#039;&#039;NOTE&#039;&#039;: You still need the game folders to be in the /home/user/[webos] directory, only some of the files are transferred to MyDocs.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example using NFSU&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The example assumes NFSU does not exist in /home/user/[webos]. &lt;br /&gt;
&lt;br /&gt;
Open xterm, create a folder in MyDocs:&lt;br /&gt;
 mkdir /home/user/MyDocs/preenv&lt;br /&gt;
 mkdir /home/user/MyDocs/preenv/nfsu&lt;br /&gt;
&lt;br /&gt;
Create NFSU folder in /home/user/[webos]:&lt;br /&gt;
 mkdir /home/user/[webos]/com.ea.app.nfsuc&lt;br /&gt;
&lt;br /&gt;
Copy &#039;&#039;only&#039;&#039; the files indicated as below from the NFSU source (location where ipk file has been extracted) to /home/user/[webos]&lt;br /&gt;
 cp [SOURCE]/com.ea.app.nfsuc/appinfo.json /home/user/[webos]/com.ea.app.nfsuc/&lt;br /&gt;
 cp [SOURCE]/com.ea.app.nfsuc/nfsuc /home/user/[webos]/com.ea.app.nfsuc/&lt;br /&gt;
&lt;br /&gt;
Copy res_nfusc folder from NFSU to MyDocs:&lt;br /&gt;
 cp -r [SOURCE]/com.ea.app.nfsuc/res_nfsuc /home/user/MyDocs/preenv/nfsu/&lt;br /&gt;
&lt;br /&gt;
Now create a symbolic link res_nfsuc in the [webos] nfsuc folder that points to the actual res_nfsuc folder in the MyDocs folder:&lt;br /&gt;
 ln -s /home/user/MyDocs/preenv/nfsu/res_nfsuc /home/user/[webos]/com.ea.app.nfsuc/res_nfsuc&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget to change the permission of the executable nfsu file in [webos]:&lt;br /&gt;
 sudo gainroot&lt;br /&gt;
 chmod +rwx /home/user/[webos]/com.ea.app.nfsuc/res_nfsuc/nfsuc&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Now you should still be able to play NFSU, having saved roughly 110MB on /home/user/[webos].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example using BrainChallenge&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The example assumes BrainChallenge does not exist in /home/user/[webos]. &lt;br /&gt;
&lt;br /&gt;
Open xterm, create a folder in MyDocs:&lt;br /&gt;
 mkdir /home/user/MyDocs/preenv&lt;br /&gt;
 mkdir /home/user/MyDocs/preenv/brainchallenge&lt;br /&gt;
&lt;br /&gt;
Create BrainChallenge folder in /home/user/[webos]:&lt;br /&gt;
 mkdir /home/user/[webos]/com.gameloft.app.brainchallenge&lt;br /&gt;
&lt;br /&gt;
Copy &#039;&#039;only&#039;&#039; the files indicated as below from the BrainChallenge source (location where ipk file has been extracted) to /home/user/[webos]&lt;br /&gt;
 cp [SOURCE]/com.gameloft.app.brainchallenge/appinfo.json /home/user/[webos]/com.gameloft.app.brainchallenge/&lt;br /&gt;
 cp [SOURCE]/com.gameloft.app.brainchallenge/icon.png /home/user/[webos]/com.gameloft.app.brainchallenge/&lt;br /&gt;
&lt;br /&gt;
Copy files from the brainchallenge folder from BrainChallenge source to MyDocs:&lt;br /&gt;
 cp [SOURCE]/com.gameloft.app.brainchallenge/brainchallenge/*.* /home/user/MyDocs/preenv/brainchallenge/&lt;br /&gt;
&lt;br /&gt;
Also copy any subdirectories in the brainchallenge folder to MyDocs:&lt;br /&gt;
 cp -r [SOURCE]/com.gameloft.app.brainchallenge/brainchallenge/sounds /home/user/MyDocs/preenv/brainchallenge/&lt;br /&gt;
&lt;br /&gt;
Copy the following code and save it to a file with the name &#039;createln.sh&#039;. &#039;&#039;NOTE&#039;&#039;: Do not save this file using Windows Notepad; if using Windows, use software like TextPad to save the file in unix format.  Copy this file to any folder on your N900.&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 cd $1&lt;br /&gt;
 files=&amp;quot;`ls -1 $1`&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 for file in $files&lt;br /&gt;
 do&lt;br /&gt;
     echo $file&lt;br /&gt;
     ln -s $1/$file $2/$file&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
Create folder brainchallenge in [webos] brainchallenge folder:&lt;br /&gt;
 mkdir /home/user/[webos]/com.gameloft.app.brainchallenge/brainchallenge&lt;br /&gt;
&lt;br /&gt;
Copy the brainchallenge executable file from Brainchallenge source location to the [webos] folder:&lt;br /&gt;
 cp [source]/com.gameloft.app.brainchallenge/brainchallenge/brainchallenge /home/user/[webos]/com.gameloft.app.brainchallenge/brainchallenge/&lt;br /&gt;
&lt;br /&gt;
Now create symbolic links in the [webos] nfsuc folder that point to the actual files in the brainchallenge folder located in MyDocs (using &#039;&#039;createln&#039;&#039;):&lt;br /&gt;
 sh [..]/createln /home/user/MyDocs/preenv/brainchallenge/brainchallenge/ /home/user/[webos]/com.gameloft.app.brainchallenge/brainchallenge&lt;br /&gt;
&lt;br /&gt;
Also create symbolic links to any folders inside the brainchallenge folder in MyDocs:&lt;br /&gt;
 ln -s /home/user/MyDocs/preenv/brainchallenge/brainchallenge/sounds /home/user/[webos]/com.gameloft.app.brainchallenge/brainchallenge/sounds&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget to change the permission of the executable brainchallege file in [webos]:&lt;br /&gt;
 sudo gainroot&lt;br /&gt;
 chmod +rwx /home/user/[webos]/com.gameloft.app.brainchallenge/brainchallenge/brainchallenge&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Now you should still be able to play BrainChallenge, having saved roughly 114MB on /home/user/[webos].&lt;br /&gt;
&lt;br /&gt;
The method used for the BrainChallenge game has also been tested and works with Asphalt 5, Blades of Fury and X-Plane Airliner.&lt;/div&gt;</summary>
		<author><name>212.90.177.150</name></author>
	</entry>
</feed>