ddwrt OPTW2 (Broadcom SoC such as brcm47xx) 笔记

ddwrt OPTW2 (Broadcom SoC such as brcm47xx) 笔记

OPTW2

安装脚本: (已支持3.X kernel)

# Install script
wget -O /tmp/prep_optware http://dd-ware.googlecode.com/svn/otrw2/prep_optware
sh /tmp/prep_optware

安装后, 发现默认每次路由启动时写入 /tmp/root/.profile 覆盖 PATH, 解决方法是修改 /opt/etc/init.d/S05chngProfile, 在 "echo "fi" >>/tmp/root/.profile" 后面加入:

echo "source /jffs/etc/profile" >>/tmp/root/.profile

git

opkg install git

安装后 git pull 失败, workaround:

在用户 profile 脚本 (每次 bash 加载时执行的脚本, 参考)中写入:
alias git="git --exec-path=/opt/usr/libexec/git-core"

然后在 git-core 目录下创建符号链接
ln -s $(which git) /opt/usr/libexec/git-core/git

然后需要创建 git 配置信息
git config --global user.name "Jacques De SAGAN"
git config --global user.email "jacquesde@sagan.me"
git config --global credential.helper cache

将 git 配置信息保存到 /jffs 里
cp /tmp/root/.gitconfig /jffs/

在启动脚本里增加:
cp /jffs/.gitconfig /tmp/root/

之所以这样蛋疼是因为 ddwrt 是只读文件系统, root 用户目录 /tmp/root 位于内存里, 每次启动都会重置.

这样可以 pull 无需验证的公开 repository 了, 但是还无法用 ssh 访问私有 git 库, 必须额外配置公钥验证. 这里我试过 ddwrt 自带的 ssh (openssh) 还有 OPTW2 里的 ssh 都有问题, git 无法使用其连接. 一个解决方法是用 dropbear 这个 ssh client 替代.

生成 dropbear 专用的 ssh identity key:

dropbearkey -t rsa -f ~/.ssh/id_rsa

生成的 key 是 dropbear 专用的二进制格式, 用下面命令查看它的 openssh 格式公钥

dropbearkey -y -f ~/.ssh/id_rsa | head -n 2 | tail -1

然后将输出的文本添加到 bitbucket 等 git 托管网站的 ssh authoried_keys 里.

创建一个脚本用于 git 的 ssh 访问, 例如命名为 ~/.gitssh.sh

#!/bin/sh
dbclient -y -i ~/.ssh/id_rsa $*

在 profile 脚本里设置 git 使用 .gitssh.sh 作为 ssh:

export GIT_SSH=/jffs/sagan/scripts/.gitssh.sh

OPTW2 包

package name说明备注














comments powered by Disqus