RIL stalls when setting /dev/ttyS0 permisions in init.rc

1,039 views
Skip to first unread message

JP

unread,
May 10, 2011, 2:41:39 AM5/10/11
to android-porting
Hi All,
I'm new to Android and am confounded with this RIL/phone services
issue in Gingerbread 2.3.3.
Kernel : 2.6.32. Any help/guidance will be much appreciated.

From adb shell:
$chown system.radio /dev/ttyS0
enables RIL services and can make phone calls.

Similar entry in init.rc :
chown system radio /dev/ttyS0
does not enable RIL services:

adb_shell> logcat -b radio
D/RILJ> WAKE_LOCK_TIMEOUT mRequestList=5

I've attached the init.rc file, below.

If init.rc is not the right location, please suggest which file should
I set "chown for /dev/ttyS0" in.

Thanks,
JP

on early-init
symlink /initlogo.rle.keep /initlogo.rle
start ueventd

on init
sysclktz 0
loglevel 3

# setup the global environment
export PATH /sbin:/system/sbin:/system/bin:/system/xbin
export LD_LIBRARY_PATH /system/lib
export ANDROID_BOOTLOGO 1
export ANDROID_ROOT /system
export ANDROID_ASSETS /system/app
export ANDROID_DATA /data
export EXTERNAL_STORAGE /mnt/sdcard
export ASEC_MOUNTPOINT /mnt/asec
export BOOTCLASSPATH /system/framework/core.jar:/system/framework/
bouncycastle.jar:/system/framework/ext.jar:/system/framework/
framework.jar:/system/framework/android.policy.jar:/system/framework/
services.jar:/system/framework/core-junit.jar

# fake some battery state
setprop status.battery.state Slow
setprop status.battery.level 5
setprop status.battery.level_raw 50
setprop status.battery.level_scale 9

# Backward compatibility
symlink /system/etc /etc
symlink /sys/kernel/debug /d

# create mountpoints
mkdir /mnt 0775 root system
mkdir /mnt/sdcard 0000 system system

# Create cgroup mount point for cpu accounting
mkdir /acct
mount cgroup none /acct cpuacct
mkdir /acct/uid

# Backwards Compat - XXX: Going away in G*
symlink /mnt/sdcard /sdcard

mkdir /system
mkdir /data 0771 system system
mkdir /cache 0770 system cache
mkdir /config 0500 root root

# Directory for putting things only root should see.
mkdir /mnt/secure 0700 root root

# Directory for staging bindmounts
mkdir /mnt/secure/staging 0700 root root

# Directory-target for where the secure container
# imagefile directory will be bind-mounted
mkdir /mnt/secure/asec 0700 root root

# Secure container public mount points.
mkdir /mnt/asec 0700 root system
mount tmpfs tmpfs /mnt/asec mode=0755,gid=1000

## mount rootfs rootfs / ro remount

write /proc/sys/kernel/panic_on_oops 1
write /proc/sys/kernel/hung_task_timeout_secs 0
write /proc/cpu/alignment 4
write /proc/sys/kernel/sched_latency_ns 10000000
write /proc/sys/kernel/sched_wakeup_granularity_ns 2000000
write /proc/sys/kernel/sched_compat_yield 1
write /proc/sys/kernel/sched_child_runs_first 0

# Create cgroup mount points for process groups
mkdir /dev/cpuctl
mount cgroup none /dev/cpuctl cpu
chown system system /dev/cpuctl
chown system system /dev/cpuctl/tasks
chmod 0777 /dev/cpuctl/tasks
write /dev/cpuctl/cpu.shares 1024

mkdir /dev/cpuctl/fg_boost
chown system system /dev/cpuctl/fg_boost/tasks
chmod 0777 /dev/cpuctl/fg_boost/tasks
write /dev/cpuctl/fg_boost/cpu.shares 1024

mkdir /dev/cpuctl/bg_non_interactive
chown system system /dev/cpuctl/bg_non_interactive/tasks
chmod 0777 /dev/cpuctl/bg_non_interactive/tasks
# 5.0 %
write /dev/cpuctl/bg_non_interactive/cpu.shares 52

# Power Management Patches
chmod 0777 /sys/power/state
chmod 0777 /sys/power/wake_lock
chmod 0777 /sys/power/wake_unlock
chmod 0777 /sys/power/wait_for_fb_sleep
chmod 0777 /sys/power/wait_for_fb_wake
chmod 0777 /sys/power/r_vdd1_autocomp
chmod 0777 /sys/power/sr_vdd2_autocomp

# Brightness Control Patches
chmod 0777 /sys/devices/platform/omapdss/generic-bl/backlight/
omap3evm-bklight/brightness

# mount sdcard third partition on /part-3
mkdir /part-3
mount vfat /dev/block/mmcblk0p3 /part-3/

# mount mtd partitions

# We chown/chmod /data again so because mount is run as root +
defaults
chown system system /data
chmod 0771 /data

# Create dump dir and collect dumps.
# Do this before we mount cache so eventually we can use cache for
# storing dumps on platforms which do not have a dedicated dump
partition.

mkdir /data/dontpanic
chown root log /data/dontpanic
chmod 0750 /data/dontpanic

# Collect apanic data, free resources and re-arm trigger
copy /proc/apanic_console /data/dontpanic/apanic_console
chown root log /data/dontpanic/apanic_console
chmod 0640 /data/dontpanic/apanic_console

copy /proc/apanic_threads /data/dontpanic/apanic_threads
chown root log /data/dontpanic/apanic_threads
chmod 0640 /data/dontpanic/apanic_threads

write /proc/apanic_console 1

# Same reason as /data above
chown system cache /cache
chmod 0770 /cache

# This may have been created by the recovery system with odd
permissions
chown system cache /cache/recovery
chmod 0770 /cache/recovery

# change permissions on vmallocinfo so we can grab it from
bugreports
chown root log /proc/vmallocinfo
chmod 0440 /proc/vmallocinfo

#change permissions on kmsg & sysrq-trigger so bugreports can grab
kthread stacks
chown root system /proc/kmsg
chmod 0440 /proc/kmsg
chown root system /proc/sysrq-trigger
chmod 0220 /proc/sysrq-trigger

# change permissions for Camera
chmod 0777 /dev/video0
chmod 0777 /dev/video3

# change permissions for Overlay
chmod 0777 /dev/video1
chmod 0777 /dev/video2
chmod 0777 /dev/omap-resizer

# create basic filesystem structure
mkdir /data/misc 0771 system misc
mkdir /data/misc/bluetoothd 0770 bluetooth bluetooth
mkdir /data/misc/bluetooth 0770 system system
mkdir /data/misc/keystore 0700 keystore keystore
mkdir /data/misc/vpn 0770 system system
mkdir /data/misc/systemkeys 0700 system system
mkdir /data/misc/vpn/profiles 0770 system system

# give system access to wpa_supplicant.conf for backup and restore
mkdir /system/etc/wifi 0771 wifi wifi
chmod 0660 /system/etc/wifi/wpa_supplicant.conf
chown wifi wifi /system/etc/wifi/wpa_supplicant.conf
# need a socket
mkdir /data/misc/wifi 0770 wifi wifi
mkdir /data/misc/wifi/sockets 0770 wifi wifi

mkdir /data/local 0771 shell shell
mkdir /data/local/tmp 0771 shell shell
mkdir /data/data 0771 system system

mkdir /data/app-private 0771 system system
mkdir /data/app 0771 system system
mkdir /data/property 0700 root root
mkdir /data/misc/dhcp 0770 dhcp dhcp

# create dalvik-cache and double-check the perms
mkdir /data/dalvik-cache 0771 system system
chown system system /data/dalvik-cache
chmod 0771 /data/dalvik-cache

# create the lost+found directories, so as to enforce our
permissions
mkdir /data/lost+found 0770
mkdir /cache/lost+found 0770

# double check the perms, in case lost+found already exists, and
set owner
chown root root /data/lost+found
chmod 0770 /data/lost+found
chown root root /cache/lost+found
chmod 0770 /cache/lost+found

#Owners, Modes for Bluetooth
chmod 0660 /dev/ttyS1
chown bluetooth bluetooth /dev/ttyS1
chmod 0660 sys/class/rfkill/rfkill0/state
chown bluetooth bluetooth /sys/class/rfkill/rfkill0/state
write sys/class/rfkill/rfkill0/state 0


on boot
# basic network init
ifup lo
hostname localhost
domainname localdomain

# set RLIMIT_NICE to allow priorities from 19 to -20
setrlimit 13 40 40

# No battery information present
setprop hw.nobattery true

# if hw.nopm is true, Settings->Application->Development->Stay Awake
is enabled
setprop hw.nopm true

# Enable gps
setprop ro.kernel.android.gps ttyS1

# Define the oom_adj values for the classes of processes that can be
# killed by the kernel. These are used in ActivityManagerService.
setprop ro.FOREGROUND_APP_ADJ 0
setprop ro.VISIBLE_APP_ADJ 1
setprop ro.PERCEPTIBLE_APP_ADJ 2
setprop ro.HEAVY_WEIGHT_APP_ADJ 3
setprop ro.SECONDARY_SERVER_ADJ 4
setprop ro.BACKUP_APP_ADJ 5
setprop ro.HOME_APP_ADJ 6
setprop ro.HIDDEN_APP_MIN_ADJ 7
setprop ro.EMPTY_APP_ADJ 15

# Define the memory thresholds at which the above process classes will
# be killed. These numbers are in pages (4k).
setprop ro.FOREGROUND_APP_MEM 2048
setprop ro.VISIBLE_APP_MEM 3072
setprop ro.PERCEPTIBLE_APP_MEM 4096
setprop ro.HEAVY_WEIGHT_APP_MEM 4096
setprop ro.SECONDARY_SERVER_MEM 6144
setprop ro.BACKUP_APP_MEM 6144
setprop ro.HOME_APP_MEM 6144
setprop ro.HIDDEN_APP_MEM 5120
setprop ro.EMPTY_APP_MEM 6144


# Write value must be consistent with the above properties.
# Note that the driver only supports 6 slots, so we have HOME_APP at
the
# same memory level as services.
write /sys/module/lowmemorykiller/parameters/adj 0,1,2,4,7,15

write /proc/sys/vm/overcommit_memory 1
write /proc/sys/vm/min_free_order_shift 4
write /sys/module/lowmemorykiller/parameters/minfree
2048,3072,4096,6144,7168,8192

# Set init its forked children's oom_adj.
write /proc/1/oom_adj -16

# Tweak background writeout
write /proc/sys/vm/dirty_expire_centisecs 200
write /proc/sys/vm/dirty_background_ratio 5

# Permissions for System Server and daemons.
chown radio system /sys/android_power/state
chown radio system /sys/android_power/request_state
chown radio system /sys/android_power/acquire_full_wake_lock
chown radio system /sys/android_power/acquire_partial_wake_lock
chown radio system /sys/android_power/release_wake_lock
chown radio system /sys/power/state
chown radio system /sys/power/wake_lock
chown radio system /sys/power/wake_unlock
# Power Management patches
chown radio system /sys/power/wait_for_fb_sleep
chown radio system /sys/power/wait_for_fb_wake
chmod 0660 /sys/power/state
chmod 0660 /sys/power/wake_lock
chmod 0660 /sys/power/wake_unlock


chown system system /sys/module/sco/parameters/disable_esco
chown system system /sys/kernel/ipv4/tcp_wmem_min
chown system system /sys/kernel/ipv4/tcp_wmem_def
chown system system /sys/kernel/ipv4/tcp_wmem_max
chown system system /sys/kernel/ipv4/tcp_rmem_min
chown system system /sys/kernel/ipv4/tcp_rmem_def
chown system system /sys/kernel/ipv4/tcp_rmem_max
chown root radio /proc/cmdline

#JP - change uid gid to system radio for /dev/ttyS0
chown system radio /dev/ttyS0
chmod 0660 /dev/ttyS0


# Define TCP buffer sizes for various networks
# ReadMin, ReadInitial, ReadMax, WriteMin, WriteInitial, WriteMax,
setprop net.tcp.buffersize.default
4096,87380,110208,4096,16384,110208
setprop net.tcp.buffersize.wifi
4095,87380,110208,4096,16384,110208
setprop net.tcp.buffersize.umts
4094,87380,110208,4096,16384,110208
setprop net.tcp.buffersize.edge
4093,26280,35040,4096,16384,35040
setprop net.tcp.buffersize.gprs 4092,8760,11680,4096,8760,11680

setprop wifi.interface "wlan0"
setprop wlan.driver.status "ok"
class_start default

## Daemon processes to be run by init.
##
service ueventd /sbin/ueventd
critical

service console /system/bin/sh
console

# Start PowerVR SGX DDK
service pvr /system/bin/sgx/rc.pvr start

# Start WiFi
service libertas /system/bin/libertas/rc.libertas start
disabled

# adbd is controlled by the persist.service.adb.enable system property
service adbd /sbin/adbd
disabled

on property:persist.service.adb.enable=1
start adbd

on property:persist.service.adb.enable=0
stop adbd

service servicemanager /system/bin/servicemanager
user system
critical
onrestart restart zygote
onrestart restart media

service vold /system/bin/vold
socket vold stream 0660 root mount
ioprio be 2

service netd /system/bin/netd
socket netd stream 0660 root system

service debuggerd /system/bin/debuggerd

service ril-daemon /system/bin/rild -l /system/lib/libreference-ril.so
-- -d /dev/ttyS0
socket rild stream 660 root radio
socket rild-debug stream 660 radio system
user root
group radio cache inet misc audio

service zygote /system/bin/app_process -Xzygote /system/bin --zygote --
start-system-server
socket zygote stream 666
onrestart write /sys/android_power/request_state wake
onrestart write /sys/power/state on
onrestart restart media

service media /system/bin/mediaserver
user media
group system audio camera graphics inet net_bt net_bt_admin
net_raw sdcard_rw
ioprio rt 4

service bootanim /system/bin/bootanimation
user graphics
group graphics
disabled
oneshot

service dbus /system/bin/dbus-daemon --system --nofork
socket dbus stream 660 bluetooth bluetooth
user bluetooth
group bluetooth net_bt_admin

service bluetoothd /system/bin/bluetoothd -n
socket bluetooth stream 660 bluetooth bluetooth
socket dbus_bluetooth stream 660 bluetooth bluetooth

# init.rc does not yet support applying capabilities, so run as root
and
# let bluetoothd drop uid to bluetooth with the right linux
capabilities
group bluetooth net_bt_admin misc
disabled

service hfag /system/bin/sdptool add --channel=10 HFAG
user bluetooth
group bluetooth net_bt_admin
disabled
oneshot

service hsag /system/bin/sdptool add --channel=11 HSAG
user bluetooth
group bluetooth net_bt_admin
disabled
oneshot

service opush /system/bin/sdptool add --channel=12 OPUSH
user bluetooth
group bluetooth net_bt_admin
disabled
oneshot

service pbap /system/bin/sdptool add --channel=19 PBAP
user bluetooth
group bluetooth net_bt_admin
disabled
oneshot

service installd /system/bin/installd
socket installd stream 600 system system

service racoon /system/bin/racoon
socket racoon stream 600 system system
# racoon will setuid to vpn after getting necessary resources.
group net_admin
disabled
oneshot

service mtpd /system/bin/mtpd
socket mtpd stream 600 system system
user vpn
group vpn net_admin net_raw
disabled
oneshot

service keystore /system/bin/keystore /data/misc/keystore
user keystore
group keystore
socket keystore stream 666

service dumpstate /system/bin/dumpstate -s
socket dumpstate stream 0660 shell log
disabled
oneshot

service hciattach /system/bin/hciattach -n /dev/ttyS1
user root
disabled

# changing user to root from bluetooth is a potential security issue
group bluetooth net_bt_admin misc
disabled
oneshot

service wpa_supplicant /system/bin/wpa_supplicant -Dwext -dd -iwlan0 -
c/data/misc/wifi/wpa_supplicant.conf
socket wpa_wlan0 dgram 660 wifi wifi
disabled
oneshot

service dhcpcd /system/bin/dhcpcd -ABKL wlan0
disabled
oneshot






Jacky.Seraph Mun

unread,
May 10, 2011, 12:02:56 PM5/10/11
to j...@avagotech.com, android-porting
Are you sure it's the permission problem that resulted in the failure
of enabling RIL daemon? What's the radio log saying?
And maybe you can try "chown radio /dev/..." instead.

Jack

2011/5/10 JP <j...@avagotech.com>:

> --
> unsubscribe: android-porti...@googlegroups.com
> website: http://groups.google.com/group/android-porting
>

Hamilton Vera

unread,
May 10, 2011, 1:57:07 PM5/10/11
to jacky...@gmail.com, android-porting
You may take a look at ./system/core/init/devices.c

{ "/dev/ttyS0", 0666, AID_RADIO, AID_RADIO, 0 },


[]'s


Hamilton Vera

--
Hamilton Vera
int Administrator (char Network[],char ComputationalSystems[])
http://hvera.wordpress.com

jehangir parvereshi

unread,
May 10, 2011, 1:05:27 PM5/10/11
to Jacky.Seraph Mun, j...@avagotech.com, android-porting
Hi Jack,
Here's the log file:
=====
# logcat -b radio
logcat -b radio
I/RIL     (  986): Hello World
I/RIL     (  986): Opening tty device /dev/ttyS0
I/PHONE   ( 1145): Network Mode set to 0
I/PHONE   ( 1145): Cdma Subscription set to 1
I/RILC    (  986): libril: new connection
I/RILC    (  986): RIL Daemon version: android reference-ril 1.0
I/RILJ    ( 1145): Connected to 'rild' socket
D/RILJ    ( 1145): [UNSL]< UNSOL_RESPONSE_RADIO_STATE_CHANGED RADIO_UNAVAILABLE
I/PHONE   ( 1145): Creating GSMPhone
D/PHONE   ( 1145): mDoesRilSendMultipleCallRing=true
D/PHONE   ( 1145): mCallRingDelay=3000
W/GSM     ( 1145): Can't open /system/etc/voicemail-conf.xml
W/GSM     ( 1145): Can't open /system/etc/spn-conf.xml
D/GSM     ( 1145): [DSAC DEB] registerForPsRestrictedEnabled
D/GSM     ( 1145): [DSAC DEB] registerForPsRestrictedDisabled
D/GSM     ( 1145): [GsmDataConnection-1] DataConnection constructor E
D/GSM     ( 1145): [GsmDataConnection-1] clearSettings
D/GSM     ( 1145): [GsmDataConnection-1] DataConnection constructor X
D/GSM     ( 1145): [GsmDataConnection-1] Made GsmDataConnection-1
D/RILJ    ( 1145): [0000]> RIL_REQUEST_REPORT_STK_SERVICE_IS_RUNNING
D/STK     ( 1145): StkService: StkService: is running
D/STK     ( 1145): StkService: NEW sInstance
E/RILJ    ( 1145): ERROR: mReqPending is NOT 0 but1 at TIMEOUT, reset!
D/RIL     (  986): onRequest: REPORT_STK_SERVICE_IS_RUNNING
D/RILJ    ( 1145): [0000]< RIL_REQUEST_REPORT_STK_SERVICE_IS_RUNNING error: com.
android.internal.telephony.CommandException: RADIO_NOT_AVAILABLE
D/RILJ    ( 1145): [0001]> GET_CURRENT_CALLS
E/RILJ    ( 1145): ERROR: mReqPending is NOT 0 but1 at TIMEOUT, reset!
E/GSM     ( 1145): Wrong network type: 0
E/GSM     ( 1145): Wrong network type: 0
D/GSM     ( 1145): Poll ServiceState done:  oldSS=[1 home null null null  Unknow
n CSS not supported 0 0RoamInd: 0DefRoamInd: 0EmergOnly: false] newSS=[1 home nu
ll null null  Unknown CSS not supported -1 -1RoamInd: -1DefRoamInd: -1EmergOnly:
 false] oldGprs=1 newGprs=1 oldType=unknown newType=unknown
D/RIL     (  986): onRequest: GET_CURRENT_CALLS
D/RILJ    ( 1145): [0001]< GET_CURRENT_CALLS error: com.android.internal.telepho
ny.CommandException: RADIO_NOT_AVAILABLE
D/GSM     ( 1145): [GsmDataConnection-1] DcInactiveState: msg.what=EVENT_RESET,
ignore we're already reset
D/GSM     ( 1145): [GsmDataConnection-1] NotifyDisconnectCompleted
D/GSM     ( 1145): [GsmDataConnection-1] clearSettings
D/GSM     ( 1145): [DataConnection] Stop poll NetStat
D/GSM     ( 1145): [DataConnection] Stop poll NetStat
D/GSM     ( 1145): [DSAC DEB] trySetupData with mIsPsRestricted=false
D/GSM     ( 1145): [IccCard] Broadcasting intent ACTION_SIM_STATE_CHANGED NOT_RE
ADY reason null
D/RILJ    ( 1145): [0002]> SCREEN_STATE: true
E/RILJ    ( 1145): ERROR: mReqPending is NOT 0 but1 at TIMEOUT, reset!
D/RIL     (  986): onRequest: SCREEN_STATE
D/RILJ    ( 1145): [0002]< SCREEN_STATE error: com.android.internal.telephony.Co
mmandException: RADIO_NOT_AVAILABLE
D/GSM     ( 1145): [DataConnection] Stop poll NetStat
=========================
Thank,
JP

jehangir parvereshi

unread,
May 10, 2011, 3:32:44 PM5/10/11
to Jacky.Seraph Mun, android-porting
Hi Jack,
I am also attaching the  reference-ril.c file.
Thanks,
JP
reference-ril.c

Jacky.Seraph Mun

unread,
May 11, 2011, 8:55:12 AM5/11/11
to android-porting
---------- Forwarded message ----------
From: Jacky.Seraph Mun <jacky...@gmail.com>
Date: 2011/5/11
Subject: Re: [android-porting] RIL stalls when setting /dev/ttyS0
permisions in init.rc
To: jehangir parvereshi <jehangir....@avagotech.com>


First of all


>>> > From adb shell:
>>> > $chown system.radio /dev/ttyS0
>>> >  enables  RIL services and can make phone calls.
>>> >
>>> > Similar entry in init.rc :
>>> >  chown system radio /dev/ttyS0
>>> >   does not enable RIL services:

Did you check the owner ship of /dev/ttyS0 again after you set it in
the init.rc and restarted? Was it the correct value still?


Secondly
According to your log, there should be 2 problems:

1.

I/RILC    (  986): RIL Daemon version: android reference-ril 1.0
I/RILJ    ( 1145): Connected to 'rild' socket
D/RILJ    ( 1145): [UNSL]< UNSOL_RESPONSE_RADIO_STATE_CHANGED RADIO_UNAVAILABLE

The last line above indicates that RIL.java has created the socket to
RIL daemon and received the first Unsolicited command from the daemon
to ask RIL.java to reset the Radio Power to be off. So in the next
normal step, the RIL.java should call

   private void setRadioStateFromRILInt(int state) {
       ...
       if (mInitialRadioStateChange) {
           mInitialRadioStateChange = false;
           if (newState.isOn()) {
               /* If this is our first notification, make sure the radio
                * is powered off.  This gets the radio into a known state,
                * since it's possible for the phone proc to have restarted
                * (eg, if it or the runtime crashed) without the RIL
                * and/or radio knowing.
                */
               if (DBG) Log.d(LOG_TAG, "Radio ON @ init; reset to OFF");
               setRadioPower(false, null);
               return;
           }
       }
       ...
   }

By default in froyo (android 2.2 or eclair 2.1), both the DBG and the
mInitialRadioStateChange should be true at that time. So there is
supposed to be the log as below:
D/RILJ    (..): Radio ON @ init; reset to OFF
after the last line of the above 3.

I am not sure why this log is missing in yours and neither do I check
the 2.3 code. So maybe you have to check that part.


2.

I/RIL     (  986): Opening tty device /dev/ttyS0

According the line, the RIL daemon is trying to open ttyS0 as to
connect to the GSM modem. If it is successfully opened, it should do
the AT handshake subsequently and there should be the log info as
"AT>...". So maybe you have to either add more log info in reference-ril.c

static void *
mainLoop(void *param)
{
...
           } else if (s_device_path != NULL) {
               fd = open (s_device_path, O_RDWR);
               if ( fd >= 0 && !memcmp( s_device_path, "/dev/ttyS", 9 ) ) {
                   /* disable echo on serial ports */
                   struct termios  ios;
                   tcgetattr( fd, &ios );
                   ios.c_lflag = 0;  /* disable ECHO, ICANON, etc... */
                   if( cfsetispeed( &ios, B115200) != 0 )
                       printf("Failed to set in speed\n");
                   if ( cfsetospeed( &ios, B115200) != 0 )
                       printf("Failed to set out speed\n");
                   tcsetattr( fd, TCSANOW, &ios );
               }
           }

           ////////////////// add here!
           // log the the fd and the "errno" if fd < 0
           // LOGI("Opened tty device %d, errno=%d", fd, errno);
           //////////////////

           if (fd < 0) {
               perror ("opening AT interface. retrying...");
               sleep(10);
               /* never returns */
           }
...
}

or make sure the atchannel.c can out put the related "AT>" log.


Jack


2011/5/11 jehangir parvereshi <jehangir....@avagotech.com>:

Adrien

unread,
May 19, 2011, 4:36:50 AM5/19/11
to android-porting
Hi,

I am trying to use a sierra wireless modem on android and i
encountered the same problems as you did and resolved part of those
with this procedure:

hardware/ril/libril/ril.cpp

First #if 0 to #if 1 Removes can't connect to rild socket, but now we
have can't connect to rild-debug
Comment next #else Removes can't connect to rild-debug socket

hardware/ril/rild/rild.c

/* special override when in the emulator */
#if 1
{
to
/* special override when in the emulator */
#if 0
{

/system/core/init/devices.c

{ "/dev/ttyACM0", 0660, AID_RADIO, AID_RADIO, 0 },

/init.rc

loglevel 4 instead of 3

service ril-daemon /system/bin/rild -l /system/lib/libreference-ril.so
-- -d /dev/ttyS0


I still have some issues though: it seems that either my igep board or
the sierra wireless modem is too slow for the other as i have several
AT ERRORS (see log http://pastebin.com/YRJBfBYV). Any help on this log
will very much appreciated.

Plus i am trying to find info on setting up APNs.
> 2011/5/11 jehangir parvereshi <jehangir.parvere...@avagotech.com>:
> >> On Tue, May 10, 2011 at 9:02 AM, Jacky.Seraph Mun <jackyser...@gmail.com>
> ...
>
> plus de détails »
Reply all
Reply to author
Forward
0 new messages