-
原样输出字符串: printf("%s", str);
-
输出指定长度的字符串, 超长时不截断, 不足时右对齐: printf("%Ns", str); –N 为指定长度的10进制数值
-
输出指定长度的字符串, 超长时不截断, 不足时左对齐: printf("%-Ns", str); –N 为指定长度的10进制数值
OpenWRT 编译百科全书
配置編譯環境
必須使用非root用戶
安裝依賴包
// Ubuntu 14.04 必選
# apt-get install asciidoc bash bc binutils bzip2 fastjar flex git-core g++ build-essential util-linux gawk libgtk2.0-dev intltool jikespg zlib1g-dev genisoimage libncurses5-dev libssl-dev patch perl-modules python2.7-dev rsync ruby sdcc unzip wget gettext xsltproc libboost1.55-dev libboost1.55-tools-dev libxml-parser-perl libusb-dev bin86 bcc bzr ecj sharutils openjdk-7-jdk zip gcc-multilib quilt
// Ubuntu 14.04 可選
# apt-get install subversion mercurial cvs
// ArchLinux 必選
# pacman -S base-devel
# pacman -S [--needed] asciidoc b43-fwcutter bash bc bin86 boost binutils bzip2 cdrkit fastjar flex gawk gettext git gtk2 intltool jdk7-openjdk libusb libxslt ncurses openssl patch perl python2 rsync ruby sdcc sharutils unzip util-linux wget zlib gcc make perl-extutils-makemaker findutils libstdc++5 lib32-libstdc++5
// libstdc++ 可能需要版本6,待測
// 根據wiki,ArchLinux部分必選包在AUR裡面
$ yaourt -S bcc jikes
// ArchLinux 可選
# pacman -S subversion
首次配置需要檢出源代碼,這裡用subversion檢出開發trunk分支
$ svn co svn://svn.openwrt.org/openwrt/trunk/
這時,就會出現名為trunk
的文件夾,這就是將來我們的工作目錄。 如果已經有了以前的版本庫,需要按照下面的命令更新
自定义print、log函数 以及自动加入__FILE__ __FUNCTION__ __LINE__ 等信息
自定义参数的实现
void dlog(char *format, ...)
{
char buf[2048];
char out[2048]
va_list args;
va_start(args, format);
vsprintf(buf, format, args);
va_end(args);
sprintf(out, "0x4741e2a7 %s\n", buf); /* 加上标识符和换行符 */
write(fd, out); /* 输出到指定 fd */
return;
}
自动加入调用位置信息的宏定义
#define log(format, ...) dlog("%-7s %-10s %-3d "format, __FILE__, __FUNCTION__, __LINE__, ##__VA_ARGS__)
OpenWRT Packet 相关的问题
DNS 无法主动解析
若执行 opkg update 失败,则尝试执行 ping downloads.openwrt.org,若也失败,则手动在 PC上 ping downloads.openwrt.org 得到 IP 后,修改路由器的host文件。
安装文件服务器
安装 apache2 服务
sudo apt-get install apache2
修改端口
默认监听的端口是80,可以自定义修改,也可不修改
- 修改
/etc/apache2/ports.conf
- 修改
/etc/apache2/sites-available/000-default.conf
重启服务
/etc/init.d/apache2 restart
apache服务器的默认目录在
/var/www/html
,如果想利用http服务器下载文件,需要删除其index.html
文件,然后把文件放在该目录即可
Macos 中设置ternimal终端保存的命令数量和格式
配置文件
linux 下对应的配置文件是~/.bash.rc 但是macOS下是/etc/zshrc,不同版本或许不同,具体情况具体分析
修改配置
在上述配置文件中添加或者修改成如下格式
同步master代码到分支
第一步:
如果分支(将此分支暂命名为dev)有修改,则先提交修改的内容,如果没有,直接跳到第二步
git commit -m “fix bug”
第二步:
切换到master分支下
git checkout master
第三步:
将远程的master代码pull到本地