TP-LINK WR703N 支持刷写 Gargoyle 系统,为 AR9331 方案的路由器。原版配备 4MB 闪存,32M 内存,详细参数可查看 WR703N 的 Wiki 页面。硬改 16M 闪存、64M 内存后,需自行编译 16M 版本的 Gargoyle 固件。

此次编译是在 Linux 环境下进行的,除非你有在 macOS 下成功编译 OpenWrt 的经验,并且愿意花费大量时间和精力去排查解决问题,否则十分不建议在 macOS 系统下操作。

安装依赖

首先,需要安装 Linux 编译 Gargoyle 所需的依赖包。Gargoyle 是基于 OpenWrt 开发的,两者编译所需的依赖差不多,具体可参考这个页面 OpenWrt build system – Installation 以确定各个 Linux 发行版对应的依赖包。以 64 位 Linux Mint 17.3 系统为例:

1
$ sudo apt-get install build-essential git subversion libncurses5-dev zlib1g-dev libssl-dev

另外,编译 Gargoyle 还需要安装 Node.js:

1
2
$ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
$ sudo apt-get install -y nodejs

Read More

Docker 在启动容器时,报出了下面的错误:

1
docker: Error response from daemon: driver failed programming external connectivity on endpoint gateway_cc39fe5306c1 (cc39fe5306c1ba7633fa14b9bcddb66536153619bf57b84b30673e2328e9284g): Bind for 0.0.0.0:80 failed: port is already allocated.

查看进程,发现相关的容器并没有在运行,而 docker-proxy 却依然绑定着端口:

1
2
$ docker ps
$ ps -aux | grep -v grep | grep docker-proxy

停止 doker 进程,删除所有容器,然后删除 local-kv.db 这个文件,再启动 docker 就可以了。

1
2
3
4
$ sudo service docker stop
$ docker rm $(docker ps -aq)
$ sudo rm /var/lib/docker/network/files/local-kv.db
$ sudo service docker start

传送文件

通过push命令从计算机向 Android 设备推送文件,例如推一个文件到 Andoroid 的公共临时目录:

1
$ adb push /path/to/file /data/local/tmp/

从 Android 设备向计算机拉取文件则是通过pull命令,例如:

1
$ adb pull /system/build.prop .

通过无线网调试

先通过 USB 线将 Android 设备连接至计算机,确保设备已经被识别,并执行下面的指令:

Read More

用户信息

在使用 git 管理仓库前,需要配置用户名和邮箱地址,以识别用户身份。通过执行下面的命令设置全局信息:

1
2
$ git config --global user.name "name"
$ git config --global user.email "email@example.com"

如需单独设置某个仓库的信息,只需进入相应的仓库,同样执行git config命令即可,只是不加--global参数。

创建版本库

进入需要 git 管理的目录,执行git init命令:

1
2
$ git init
# Initialized empty Git repository in /Users/Kevin/Notes/.git/

Read More

自从Android Studio更新到2.0之后,编译时有很大的几率会报类似下面的错误:

1
2
3
4
5
6
7
8
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:clean'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
...
Caused by: org.gradle.api.file.UnableToDeleteFileException: Unable to delete directory: /workspace/MyApplication/app/build/intermediates/exploded-aar/com.android.support/support-vector-drawable/23.3.0/jars/
at org.gradle.api.internal.file.copy.DeleteActionImpl.handleFailedDelete(DeleteActionImpl.java:90)
at org.gradle.api.internal.file.copy.DeleteActionImpl.doDelete(DeleteActionImpl.java:66)
at org.gradle.api.internal.file.copy.DeleteActionImpl.doDelete(DeleteActionImpl.java:61)
... 70 more

Read More

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×