Chinaunix首页 | 论坛 | 博客
  • 博客访问: 322943
  • 博文数量: 28
  • 博客积分: 609
  • 博客等级: 中士
  • 技术积分: 925
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-17 13:32
文章分类

全部博文(28)

文章存档

2022年(1)

2016年(1)

2015年(2)

2012年(1)

2011年(23)

分类: Android平台

2015-06-30 14:32:59

sshEntware是OptWare的一个替代品,属于OpenWrt的一部分。其本来的作用是在路由器提供一个Linux的运行环境。
并且Entware有大量编译好的软件可以通过网络下载和安装。所以通过安装Entware,可以大大扩展盒子的使用范围。
在盒子上安装Entware首先要对盒子进行root。具体如何root, 请大家百度。root完之后,首先通过adb以root权限进入盒子。
adb connect 192.168.1.x
adb root
adb connect 192.168.1.x &lt

下载,并修改成以下内容并保存
#!/system/bin/sh

echo "Info: Checking for prerequisites and creating folders..."

if [ -d /opt ]
then
    echo "Warning: Folder /opt exists!"
else
    mkdir /data/opt
    ln -s /data/opt /opt
    
fi
for folder in bin etc include lib sbin share tmp usr var
do
  if [ -d "/opt/$folder" ]
  then
    echo "Warning: Folder /opt/$folder exists!"
    echo "Warning: If something goes wrong please clean /opt folder and try again."
  else
    mkdir /opt/$folder
  fi
done
[ -d "/opt/lib/opkg" ] || mkdir -p /opt/lib/opkg
[ -d "/opt/var/lock" ] || mkdir -p /opt/var/lock
[ -d "/opt/var/log" ] || mkdir -p /opt/var/log
[ -d "/opt/var/run" ] || mkdir -p /opt/var/run

echo "Info: Opkg package manager deployment..."
cd /opt/bin
wget /> chmod +x /opt/bin/opkg
cd /opt/etc
wget /> cd /opt/lib
wget /> chmod +x ld-2.20.so
ln -s ld-2.20.so ld-linux.so.3
wget /> ln -s libc-2.20.so libc.so.6

echo "Info: Basic packages installation..."
/opt/bin/opkg update
/opt/bin/opkg install glibc-opt
if [ ! -f /opt/usr/lib/locale/locale-archive ]
then
        wget -O /opt/usr/lib/locale/locale-archive
fi

echo "Info: Congratulations!"
echo "Info: If there are no errors above then Entware.arm successfully initialized."
echo "Info: Add /opt/bin & /opt/sbin to your PATH variable"
echo "Info: Add '/opt/etc/init.d/rc.unslung start' to startup script for Entware.arm services to start"
echo "Info: Found a Bug? Please report at />

然后通过下列命令将修改的脚本在盒子上运行
adb push entware_install_arm.sh
adb shell chmod 755 /data/entware_install_arm.sh
adb shell sh /data/entware_install_arm.sh

至此,entware被安装到/data/opt目录下,并在根目录有/opt的链接。
接下来的工作就是让entware能够在盒子启动的时候运行,这里需要做的就是让Android自动运行/opt/etc/init.d/rc.unslung start。
Android在启动的时候会自动运行/system/etc/install-recovery.sh。可以通过修改并上传这份文件到盒子上来启动引导。
我参照里面optware的optware-init.sh写了一段

#!/system/bin/sh
echo Reinitializing optware rootfs links
mount -o rw,remount rootfs /
sleep 5 #等待remount完成
ln -s /data/opt /opt
chown root /opt -Rh
/opt/etc/init.d/rc.unslung start

将这份install-recovery.sh通过以下命令传到/system/etc
adb push install-recovery.sh /system/etc/
adb shell chmod 0755 /system/etc/install-recovery.sh
adb shell reboot #重启盒子

至此entware就安装成功并且能够启动引导。当然,只能用adb命令连接,仍然不方便。所以很有必要安装ssh。

使用opkg install openssh-server安装sshd,安装完openssh-server之后还需要会在/opt/etc/init.d里面生成S40sshd的启动命令。手动运行该命令就会发现缺少以下的配置:
1. 缺少/system/etc/passwd文件。依然借用optware的passwd文件,但是增加一下一行在passwd文件里

sshd:x:2001:2001:shell:/opt/home/user:/bin/sh

2. 然后需要建立/opt/home/root目录,并在/opt/home/root目录中产生.profile文件,文件内容如下
#!/system/bin/sh
/opt/etc/profile #运行系统的profile文件设置全局环境变量

3. 通过ssh-keygen产生sshd需要的各类key文件,可以通过运行S40sshd来发现系统缺少哪些文件,并通过ssh-keygen产生。当所有文件和配置都齐全之后,运行/opt/etc/init.d/S40sshd就能启动sshd.这样就能远程通过putty登陆了。用户名是root,密码是toor。
阅读(18282) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~