LINux on MOBile - Motorola A910LINMOB.net is a blog about LINux on MOBile devices. With the PinePhone (Pro) and Librem 5 shipping it is back to report on GNU+Linux on mobile devices.Zola2007-11-20T09:00:00+00:00https://linmob.net/tags/motorola-a910/feed.xmlShort update2007-11-20T09:00:00+00:002007-11-20T09:00:00+00:00https://linmob.net/short-update/<p>Recently, I did some work on CG44, and tried to flash it into my A910—size was correct, and no, i did not forget to ad 1000xff file header. But: It didn't work. After flashing, my phone didn't start up.</p>
<span id="continue-reading"></span>
<p>So decided to do these mods I want to do by putting additional files on my memory card (maybe copying them to (at least the most important ones ezxlocal) and then to do some scripting, maybe there is a way for autostart.</p>
<p>We'll see. Greatest probs ATM are not enough time, <em>usbnet</em> being broken in Ubuntu Gutsy and sometimes a lack of know how (Google often helps…)</p>
A910 and CGs2007-10-22T16:14:00+00:002007-10-22T16:14:00+00:00https://linmob.net/a910-and-cgs/<p>Today I found the time to get back onto A910 modding. I managed to get to know some things, and after writing this I'll go on with research.</p>
<span id="continue-reading"></span>
<p><em>First:</em> Code Group (CG) names differ from A910 to other devices, they are the same as on some A1200 (newer firmwares, if I got that right). For finding out things I had a look at <code>ilove3d-48p-ultimate</code> for the Motorola Rokr E2, and compared the stuff I found there using the SBF-extraction tool you find over at freemod.net, results (compared to <code>A910-R57_G_10.08.07R</code>):</p>
<p>CG34/CG37 contents seem to be nearly the same, but as there is no CG41, CG42 is what CG41 is on E2 and so on. That means, that quite important CG43 folder from backup (made with some backup tool for E2 from e2mod.com) (contains main file system…), is CG44 in firmware.</p>
<p>Unfortunately I wasn't successfull yet on extracting files from E2-CG43/A910-CG44—I'll google on that, and I'm pretty sure that someday I might find out how to get this work.</p>
<p>Maybe you remember this:</p>
<blockquote>CG42 contains `/usr/setup/`, and there is a file called `ezx_wlan.cfg`. Line 4 of this file contains the following text:
~~~
WiFiUIConnectUMAN = 1
~~~
</blockquote><br />
<p>After my research today I know why changing this value to zero and flashing it only caused languages to disappear: I simply flashed it to the wrong position. Shame on me. Now I will have to try this out again.</p>
An email with helpful information2007-10-14T11:38:00+00:002007-10-14T11:38:00+00:00https://linmob.net/an-email-with-helpful-information/<p>As I haven't posted here for nearly a month, I will now quote an email I got by a guy I contacted. All copyrights go to him, I haven't had time to test his explanations, but maybe it helps some of you that want their A910 to connect to every wireless network._</p>
<span id="continue-reading"></span>
<blockquote>
I'll try to make some explainations. We can discuss together in order to
improve the text and make a correct howto we can put on the web…
(contains and form (I'm an old vi dinosaur from 1994 ;) ) + the english,
as it's not my mother language…)
4 parts: telnetd, swap, wifi and mackconnectivitypack/fake_dsm
<ol>
<li>Telnetd/login
Motorola didn't install any telnetd nor login. (thanks, Moto :-)
Mount your phone as an usb mass storage, then edit
[path]/.system/javaCardRegistr<div style="direction: ltr">y
and set lines as follow (you can install a dummy java application then
adapt the values (IMEI, AppID,…) JavaId must be -1.</li>
</ol>
<pre><code>[1bf504e3-a1e3-d1e8-b96a-40f3a7f60087]
AppID = {1bf504e3-a1e3-d1e8-b96a-40f3a7f60087}
Args =
Attribute = 2
BigIcon = inetd.png
Daemon = 0
Directory = /mmc/mmca1/scripts
Eraseable = 1
Exec = inetd_start.lin
FixedAllPosition = 0
FixedPosition = 0
GroupID = ezx
IMEI = 353300010213731
Icon = inetd.png
InstalledDate = 2007/6/6
JavaId = -1
LockValue = 0
MassStorageStatus = 1
MpkgFile =
Name = Inetd_Start.lin
OsVersion = 1.0
Shared = 1
Size = 64K
Type = 2
UserID = ezx
Visible = 1
</code></pre>
<p>with /mmc/mmca1/scripts/inetd_start.lin</p>
<pre><code>#!/bin/bash
export QTDIR=/usr/lib/ezx
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/ezxlocal/sbin
export PATH=$PATH:/ezxlocal/sbin
my_alert='/usr/SYSqtapp/phone/alertprocess'
my_mid1='/ezxlocal/sbin/done.mid'
cp -f /mmc/mmca1/sbin/inetd.conf /tmp/inetd.conf
echo -n &#8220;Starting internet superserver:&#8221;
echo -n &#8221; inetd&#8221;&#160;; start-stop-daemon &#8212;start &#8212;quiet &#8212;chuid root
&#8212;pidfile /var/run/inetd.pid &#8212;exec /mmc/mmca1/sbin/inetd
$my_alert -playvol 1 -playfile $my_mid1
</code></pre>
<p>/mmc/mmca1/sbin/inetd.conf contains:</p>
<pre><code>telnet stream tcp nowait root /mmc/mmca1/sbin/in.telnetd
in.telnetd -L /mmc/mmca1/sbin/login
</code></pre>
<p>for the in.telnetd daemon, login exec, those from my A780 are ok,
or google search Telnet_Samba_preload.rar on a russian moto site.
A780-AddOns.tgz is also very usefull for login and many more
(was available on the old motorolafan download section, but no more today)
<a href="http://big.pcpm.ucl.ac.be/A780-AddOns.tgz" target="_blank"></a> (install without diska
sub-directory, into your mmc card)</p>
<p>Then after a A910 reboot, you see into games, a “Inetd_Start.lin” you
can activate (hear a sound).</p>
<p>you can connect your linux box (A910 usb in modem mode)</p>
<pre><code>usb 4-2: new full speed USB device using uhci_hcd and address 4
cdc_acm 4-2:1.0: ttyACM0: USB ACM device
usb 4-2: USB disconnect, address 4
usb 4-2: new full speed USB device using uhci_hcd and address 5
</code></pre>
<p>see <a href="http://www.courville.org/mediawiki/index.php/EZX" target="_blank"></a><a href="http://www.courville.org">http://www.courville.org</a>/mediawiki/index.php/EZX</p>
<pre><code>echo &#8220;AT+mode=13&#8221; &gt; /dev/ttyACM0
echo &#8220;AT+mode=99&#8221; &gt; /dev/ttyACM0
</code></pre>
<p>sometimes more than one time (why? :-), until you get something like
this in the kernel message (dmesg):</p>
<pre><code>usb0: register usbnet at usb-0000:00:1d.2-2, pseudo-MDLM (BLAN) device,
12:ea:79:65:60:6f
usbcore: registered new driver usbnet
ifconfig usb0 192.168.1.1 netmask 255.255.255.0 mtu 900
telnet 192.168.1.2
Trying 192.168.1.2&#8230;
Connected to 192.168.1.2
Escape character is &#8216;^]'.
MontaVista(R) Linux(R) Consumer Electronics Edition 3.1
Linux/armv5tel 2.4.20_mvlcee31-mainstone_pxa27x
(none) login: root
MontaVista(R) Linux(R) Consumer Electronics Edition 3.1
No directory /root!
Logging in with home = &#8220;/&#8221;.
</code></pre>
<p>I set a more convenient environment with</p>
<h1 id="mmc-mmca1-root-start">/mmc/mmca1/root/start</h1>
<pre><code>root@a910 ~ 11:38:16 &gt; cat /mmc/mmca1/root/start
#!/bin/sh
/etc/init.d/ezxenvr.sh
export PATH=$PATH:/mmc/mmca1/.system/bin:/mmc/mmca1/.system/sbin
export
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$QTDIR/lib:/lib:/usr/lib:/usr/lib/ezx/lib:/mmc/mmca1/.system/lib
export EZX_RES_FONT_PATH=/usr/lib/ezx/lib/fonts
eval &#8220;`dircolors -b`&#8221;
alias ls='ls &#8212;color=auto'
export HOME=/mmc/mmca1/root
cd $HOME
export COLUMNS=150
/mmc/mmca1/.system/bin/bash
root@a910 ~ 11:38:22 &gt; cat .bashrc
export PROMPT_COMMAND='echo -ne &#8220;33]0;root@910:${PWD/#$HOME/~}07&#8221;'
export PS1=&#8221;u@a910 w t &gt; &#8220;
export HISTFILESIZE=100
export HISTSIZE=100
export HISTCONTROL=ignoreboth
export QTDIR=/usr/lib/ezx
export EZX_RES_FONT_PATH=/usr/lib/ezx/lib/fonts
eval &#8220;`dircolors -b`&#8221;
alias ls='ls &#8212;color=auto'
export HOME=/mmc/mmca1/root
export COLUMNS=150
. /etc/init.d/ezxenvr.sh
export
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$QTDIR/lib:/lib:/usr/lib:/usr/lib/ezx/lib:/mmc/mmca1/.system/lib
alias scp='scp -S /mmc/mmca1/.system/bin/ssh -q'
alias sftp='sftp -S /mmc/mmca1/.system/bin/ssh'
alias l='ls -l'
alias ..='cd ..'
alias cp='cp -v'
alias la='ls -la'
alias ll='ls -lA'
</code></pre>
<p>Then, I changed the telnetd and login directory, moving from /mmc/mmca1 to /ezxlocal (11Mb internal A910 storage) so telnetd is no more dependant of the removable microSD.</p>
<ol start="2">
<li>swapspace
I also set a swap space ( no more
available on motorolafan)
in <code>/mmc/mmca1/.system/java/CardRegistry:</code></li>
</ol>
<pre><code>[793bffb3-96f9-d929-bfd7-84e623c514cf]
AniIcon =
AppID = {793bffb3-96f9-d929-bfd7-84e623c514cf}
Args =
Attribute = 4
BigIcon = swapon.png
Daemon = 0
Directory = /mmc/mmca1/.system/swap
Eraseable = 1
Exec = swapon.lin
FixedAllPosition = 0
FixedPosition = 0
GroupID = ezx
IMEI = 35330001*******
Icon = swapon.png
InstalledDate = 2007/6/13
JavaId = -1
MassStorageStatus = 0
MpkgFile =
Name = Swap_on_off.lin
OsVersion = 1.1
Shared = 2
Size = 386K
Type = 2
UserID = ezx
Visible = 1
</code></pre>
<p>root@a910 ~ 12:14:25 > cat /mmc/mmca1/.system/swap/swaponoff.sh</p>
<pre><code>#!/bin/sh
SWAPDIR=/mmc/mmca1/.system/swap
SWAPFILE=$SWAPDIR/swapfile
if [&#160;! -f $SWAPFILE ]; then
gzip -c -d $SWAPFILE
fi
if&#160;! grep $SWAPFILE /proc/swaps; then
swapon $SWAPFILE
rm $SWAPDIR/OFF
touch $SWAPDIR/ON
my_mid1='/usr/data_resource/ringtone/rt_alert_2.mid'
else
rm $SWAPDIR/ON
swapoff $SWAPFILE
touch $SWAPDIR/OFF
my_mid1='/usr/data_resource/ringtone/rt_alert_5.mid'
fi
my_alert='/usr/SYSqtapp/phone/alertprocess'
$my_alert -playvol 1 -playfile $my_mid1
</code></pre>
<ol start="3">
<li>Wifi
The WIFI connection tool /usr/SYSqtapp/wsp/wlanapp fails everytime (UMA stuff? Orange or BT limitation? Grrr…) so the solution is to kill the
process when we are connected and continue with normal dhcp request:
see the awful script <code>setwifidhcp.lin</code>:</li>
</ol>
<pre><code>#!/bin/sh
/etc/init.d/ezxenvr.sh
export PATH=$PATH:/mmc/mmca1/.system/bin:/mmc/mmca1/.system/sbin
export
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$QTDIR/lib:/lib:/usr/lib:/usr/lib/ezx/lib:/mmc/mmca1/.system/lib
export EZX_RES_FONT_PATH=/usr/lib/ezx/lib/fonts
/usr/SYSqtapp/wsp/wlanapp &gt;/ezxlocal/wlanapp.log 2&gt;&amp;1 &amp;
pid=`find /proc/ -name exe -ls 2&gt; /dev/null|grep wlanapp|cut -d/ -f3`
connected=0
while [ ${connected} -eq 0 ]; do
sleep 2
connected=`grep &#8220;Successfully connected to AP&#8221;
/ezxlocal/wlanapp.log |wc -l`
done
kill $pid
kill `cat /ram/tmp/dhcpcd-eth0.pid`
rm /ram/tmp/dhcpcd-eth0.pid
dhcpcd eth0
my_alert='/usr/SYSqtapp/phone/alertprocess'
my_mid1='/ezxlocal/sbin/done.mid'
$my_alert -playvol 1 -playfile $my_mid1
</code></pre>
<p>Now, the problem is the setting of the dnsproxy process:</p>
<pre><code>cat /etc/dnsproxy.conf
include /ram/tmp/dsmdns.conf
include /ram/tmp/pppdns.conf
</code></pre>
<p>Even when I fix a proper value into <code>/ram/tmp/dsmdns.conf</code>, it's not taken
into account.
By mounting a writable <code>/etc</code>, I can set a working <code>/etc/resolv.conf</code>
<a href="http://www.courville.org/mediawiki/index.php/EZX#Make_.2Fetc_editable_.26_change_root_passwd_.28more_secure_telnet.29" target="_blank">http://www.courville.org/mediawiki/index.php/EZX#Make_.2Fetc_editable_.26_change_root_passwd_.28more_secure_telnet.29</a></p>
<ol start="5">
<li><code>mackconnectivitypack/fake_dsm</code></li>
</ol>
<p>When the wifi link is ok (see iwconfig eth0) I can access internet with
native application
(ping, telnet,…) but not with web browser, nor native opera nor java opera-mini.</p>
<p>The solution would be to set a fake_dsm route but I did'nt succeed…
I used the dsm_spy from clovisKKK to adapt the fake_dsm code, as
suggested in the thread
<a href="http://www.motorolafans.com/forums/viewtopic.php?t=9096&postdays=0&postorder=asc&start=0" target="_blank">http://www.motorolafans.com/forums/viewtopic.php?t=9096&postdays=0&postorder=asc&start=0</a></p>
<p>B******</p>
</blockquote>
<p>As you can easily see, there is still a lot of work to do, and I have to say, I'd prefer to modify the firmware and flash it into the device to get things working without lots of dirty hacks not everybody is able to perform.</p>