WEBAPI?を使ったコード。
何かのサンプルにできそう。
"youtube-dl"
- youtube-dl: Download Page (Google サイドウィキで表示)
インターネット上にある断片化された情報を切り取って、リブログする。 主にソフトウェア、Ubuntu関連、CPUなど気になったニュース、また、日々の面白い出来事やニュースもリブログします。
WEBAPI?を使ったコード。
何かのサンプルにできそう。
"youtube-dl"
- youtube-dl: Download Page (Google サイドウィキで表示)
Pass gcc the -static option. See:
man gcc
"Pass gcc the -static option. See: man gcc"
- How can I use gcc to build a static library? (Google サイドウィキで表示)
busyboxとqt4.
"Qt 4.5 on mini2440"
- Qt 4.5 on mini2440 | CoR (Google サイドウィキで表示)
root 権限で
コンパイルするのに必要なパッケージをインストールする
# apt-get build-dep package
ユーザ権限でも可
適当なディレクトリに移動する
$ cd /usr/local/src
ソースをダウンロードする
$ apt-get source package
該当ディレクトリに移動する
$ cd package-version
パッケージを構築する
$ dpkg-buildpackage -rfakeroot -uc -b
root 権限で
パッケージをインストールする
# dpkg -i package.deb
"Debian を ソースからコンパイルする"
- はっぴぃ・りなっくす - Debian を ソースからコンパイルする - Linux > Linux Install > Debian - SmartSection (Google サイドウィキで表示)
libdirectfbとlibts-binの2つが必要?
内容:"libdirectfb-1.2-9"
- Debian -- パッケージのファイル一覧: libdirectfb-1.2-9/sid/armel (Google サイドウィキで表示)
apt-get install libts-bin
/usr/bin/ts_calibrate
/usr/bin/ts_harvest
/usr/bin/ts_print
/usr/bin/ts_print_raw
/usr/bin/ts_test
"/usr/bin/ts_calibrate /usr/bin/ts_harvest /usr/bin/ts_print /usr/bin/ts_print_raw /usr/bin/ts_test"
- Debian -- パッケージのファイル一覧: libts-bin/lenny/armel (Google サイドウィキで表示)
mkdir dev mkdir -p etc etc/init.d etc/network mkdir -p var var/run var/log mkdir -p usr/bin usr/sbin usr/lib usr/local/bin usr/local/sbin usr/local/lib ln -s usr/bin bin ln -s usr/sbin sbin ln -s usr/lib lib mkdir pt mnt proc sys mkdir -m 777 tmp mknod -m 622 dev/console c 5 1 mknod dev/ttySAC0 c 204 64 mknod dev/tty0 c 4 0 #touch linuxrc #chmod ug+x linuxrc #gcc 4.3.2 or 4.4.3 for frienldyARM toolchain #cp -Rp /opt/FriendlyARM/toolchain/4.4.3/arm-none-linux-gnueabi/sys-root/lib/* lib/ cp -Rp /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib/* lib/ #kernel copy cp ~/kernel/mini2440/uImage boot/ cp -Rp ~/kernel/kernel-modules/lib/* lib/ # The operation of the init program is define in the inittab file, busybox init has the following default behaviour. printf "::sysinit:/etc/init.d/rcS\n" > ./etc/inittab printf "::askfirst:-/bin/sh\n" >> ./etc/inittab printf "::ctrlaltdel:/sbin/reboot\n" >> ./etc/inittab printf "::shutdown:/bin/umount -a \n" >> ./etc/inittab printf "::shutdown:/sbin/swapoff -a\n" >> ./etc/inittab printf "::restart:/sbin/init\n" >> ./etc/inittab printf "::respawn:/sbin/getty -L 115200 /dev/ttySAC0 vt100\n" >> ./etc/inittab # Create a rcS job file in the /rootfs/etc/init.d directory to initialize the target system. printf "#! /bin/sh\n" > ./etc/init.d/rcS printf "\n" >> ./etc/init.d/rcS printf "# Setup the bin file location and export to system PATH\n" >> ./etc/init.d/rcS printf "PATH=/sbin:/bin:/usr/sbin:/usr/bin\n" >> ./etc/init.d/rcS printf "umask 022\n" >> ./etc/init.d/rcS printf "export PATH\n" >> ./etc/init.d/rcS printf "\n" >> ./etc/init.d/rcS printf "# mount the filesystem directories\n" >> ./etc/init.d/rcS printf "mount -a\n" >> ./etc/init.d/rcS printf "mkdir /dev/pts\n" >> ./etc/init.d/rcS printf "mount -t devpts devpts /dev/pts -o mode=0622\n" >> ./etc/init.d/rcS printf "\n" >> ./etc/init.d/rcS printf "# create device nodes and directories\n" >> ./etc/init.d/rcS printf "echo /sbin/mdev>/proc/sys/kernel/hotplug\n" >> ./etc/init.d/rcS printf "mdev -s\n" >> ./etc/init.d/rcS printf "mkdir /var/lock\n" >> ./etc/init.d/rcS printf "\n" >> ./etc/init.d/rcS printf "# start logging utility services\n" >> ./etc/init.d/rcS printf "klogd\n" >> ./etc/init.d/rcS printf "syslogd\n" >> ./etc/init.d/rcS printf "\n" >> ./etc/init.d/rcS printf "# set system clock from RTC\n" >> ./etc/init.d/rcS printf "hwclock -s\n" >> ./etc/init.d/rcS printf "\n" >> ./etc/init.d/rcS printf "# set host and config loopback interface\n" >> ./etc/init.d/rcS printf "ifconfig lo 127.0.0.1\n" >> ./etc/init.d/rcS chmod +x ./etc/init.d/rcS #Create a mdev.conf file in the /rootfs/etc directory for the mdev process to do an initial update of the device files dynamically. printf "# system all-writable devices\n" > ./etc/mdev.conf printf "full 0:0 0666\n" >> ./etc/mdev.conf printf "null 0:0 0666\n" >> ./etc/mdev.conf printf "ptmx 0:0 0666\n" >> ./etc/mdev.conf printf "random 0:0 0666\n" >> ./etc/mdev.conf printf "tty 0:0 0666\n" >> ./etc/mdev.conf printf "zero 0:0 0666\n" >> ./etc/mdev.conf printf "\n" >> ./etc/mdev.conf printf "# console devices\n" >> ./etc/mdev.conf printf "tty[0-9]* 0:5 0660\n" >> ./etc/mdev.conf printf "vc/[0-9]* 0:5 0660\n" >> ./etc/mdev.conf printf "\n" >> ./etc/mdev.conf printf "# serial port devices\n" >> ./etc/mdev.conf printf "s3c2410_serial0 0:5 0666 =ttySAC0\n" >> ./etc/mdev.conf printf "s3c2410_serial1 0:5 0666 =ttySAC1\n" >> ./etc/mdev.conf printf "s3c2410_serial2 0:5 0666 =ttySAC2\n" >> ./etc/mdev.conf printf "s3c2410_serial3 0:5 0666 =ttySAC3\n" >> ./etc/mdev.conf printf "\n" >> ./etc/mdev.conf printf "# loop devices\n" >> ./etc/mdev.conf printf "loop[0-9]* 0:0 0660 =loop/\n" >> ./etc/mdev.conf printf "\n" >> ./etc/mdev.conf printf "# i2c devices\n" >> ./etc/mdev.conf printf "i2c-0 0:0 0666 =i2c/0\n" >> ./etc/mdev.conf printf "i2c-1 0:0 0666 =i2c/1\n" >> ./etc/mdev.conf printf "\n" >> ./etc/mdev.conf printf "# frame buffer devices\n" >> ./etc/mdev.conf printf "fb[0-9] 0:0 0666\n" >> ./etc/mdev.conf printf "\n" >> ./etc/mdev.conf printf "# input devices\n" >> ./etc/mdev.conf printf "mice 0:0 0660 =input/\n" >> ./etc/mdev.conf printf "mouse.* 0:0 0660 =input/\n" >> ./etc/mdev.conf printf "event.* 0:0 0660 =input/\n" >> ./etc/mdev.conf printf "ts.* 0:0 0660 =input/\n" >> ./etc/mdev.conf printf "\n" >> ./etc/mdev.conf printf "# rtc devices\n" >> ./etc/mdev.conf printf "rtc0 0:0 0644 >rtc\n" >> ./etc/mdev.conf printf "rtc[1-9] 0:0 0644\n" >> ./etc/mdev.conf printf "\n" >> ./etc/mdev.conf printf "# misc devices\n" >> ./etc/mdev.conf printf "mmcblk0p1 0:0 0600 =sdcard */bin/hotplug\n" >> ./etc/mdev.conf printf "sda1 0:0 0600 =udisk * /bin/hotplug\n" >> ./etc/mdev.conf #Create a fstab filesystem table in the /rootfs/etc directory to mount the system directories. printf "# device mount-point type options dump fsck order\n" > ./etc/fstab printf "proc /proc proc defaults 0 0\n" >> ./etc/fstab printf "sysfs /sys sysfs defaults 0 0\n" >> ./etc/fstab printf "tmpfs /dev tmpfs defaults 0 0\n" >> ./etc/fstab printf "tmpfs /tmp tmpfs defaults 0 0\n" >> ./etc/fstab printf "var /var tmpfs defaults 0 0\n" >> ./etc/fstab #Create a group file in /rootfs/etc directory. printf "grep root /etc/group>group\n" > ./etc/group #Create a password file in /rootfs/etc directory. printf "grep root /etc/passwd>passwd\n" > ./etc/password #Create a system wide 'profile' in /rootfs/etc directory. printf "USER=\"`id -un`\"\n" >> ./etc/profile printf "LOGNAME=$USER\n" >> ./etc/profile printf "PS1='[\\u@\\h \\W]\\# '\n" >> ./etc/profile printf "PATH=$PATH\n" >> ./etc/profile printf "HOSTNAME=`/bin/hostname`\n" >> ./etc/profile printf "export USER LOGNAME PS1 PATH HOSTNAME\n" >> ./etc/profile #Create a 'hostname' file in /rootfs/etc directory. printf "mini2440" > ./etc/hostname #Create a /rootfs/etc/issue to add a welcome prompt to the console login. printf "Welcome to Mini2440\n" >> ./etc/issue printf "Kernel \\r on an \\m \(\\l\)\n" >> ./etc/issue #Finally, create a resolv.conf file in /rootfs/etc directory to configure the #DNS address to access the internet with your service provider network domain #and ip address. printf "nameserver 192.168.1.1\n" > ./etc/resolv.conf printf "auto lo\niface lo inet loopback\n" > ./etc/network/interfaces printf "auto eth0\niface eth0 inet dhcp\n" >> ./etc/network/interfaces
busybox
kernel
initrd
を作らないといけない。
"Build Root File System on Mini2440"
- Charles Blog: Build Root File System (Google サイドウィキで表示)
start on stopped rcRUNLEVEL=[2345] stop on runlevel [!2345] respawn exec /sbin/getty -8 38400 tty1この内容だけ見て検討も付けられないけど今まで一行にまとめて記述していたものを分解したイメージなのかな。
T0:123:respawn:/sbin/getty 115200 ttySAC0
コンパイルに関する便利なサイトを見つけた。
内容:"friendlyarm"
- Linux_Tutorial - friendlyarm - Project Hosting on Google Code (Google サイドウィキで表示)
gcc `pkg-config --cflags opencv` `pkg-config --libs opencv` -o edge edge.c
これでおk
Makefileでコンパイルするなら
LDFLAGS += `pkg-config opencv --libs`
CFLAGS += `pkg-config opencv --cflags`
CXXFLAGS += `pkg-config opencv --cflags`
"LDFLAGS += `pkg-config opencv --libs` CFLAGS += `pkg-config opencv --cflags` CXXFLAGS += `pkg-config opencv --cflags`"
- OpenCV を使ったプログラムの作り方 (Google サイドウィキで表示)
とても参考になった。
自前の環境でまだパスの問題は解決されていなくて
#includeを
#include
にすればいいけど。。
"[OpenCV][Ubuntu][InspironMini]OpenCVインストール、顔認識などサンプル動かす"
- OpenCVインストール、顔認識などサンプル動かす - 橋本詳解 (Google サイドウィキで表示)
… fastcgi.server = ( ".fcgi" => ( "localhost" => ( "socket" => "/tmp/fcgi.socket", "bin-path" => "/var/www/fcgi/index.fcgi", "idle-timeout" => 20, "check-local" => "disable", "min-procs" => 1, "max-procs" => 1 ) ) )---
apt-get install libcurl3-dev libxml2-dev libmng-dev libxcb-image0-dev libxcb-icccm1-dev libxcb-keysyms1-dev libxcb-aux0-dev libglade2-dev svn co -r 10901 svn://svn.netsurf-browser.org/trunk/libparserutils svn co -r 10901 svn://svn.netsurf-browser.org/trunk/libwapcaplet svn co -r 10901 svn://svn.netsurf-browser.org/trunk/hubbub svn co -r 10901 svn://svn.netsurf-browser.org/trunk/libcss svn co -r 10901 svn://svn.netsurf-browser.org/trunk/libnsgif svn co -r 10901 svn://svn.netsurf-browser.org/trunk/libnsbmp svn co -r 10901 svn://svn.netsurf-browser.org/trunk/librosprite svn co -r 10901 svn://svn.netsurf-browser.org/trunk/libnsfb(※リリースされた時期にあわせたリビジョン指定が必要。ちなみに10901はそれらしい日付で合わせてる。)
make make install
make TARGET=framebuffer make install
モニター回転
fbcon=rotate:
n=0 通常
1:90度
2:180度
3:270度
組み込み系で使えそう。
内容:"#include <fcgi_stdio.h>"
- nginx and FastCGI C/C++ (Google サイドウィキで表示)
/dev/input/
"Linux Input Subsystemの使い方"
- Linux Input Subsystemの使い方 (Google サイドウィキで表示)
gunicorn+web.pyの設定編。
内容:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import web
urls = (
'/(.*)', 'hello'
)
#app = web.application(urls, globals())
app = web.application(urls, globals()).wsgifunc() # <- .wsgifunc() を追加!
class hello:
def GET(self, name):
if not name:
name = 'World'
return 'Hello, ' + name + '!'
if __name__ == '__main__':
app.run()
"app = web.application(urls, globals()).wsgifunc() # <- .wsgifunc() を追加!"
- gunicorn で web.py 製のアプリケーションを動かす - yono05の日記 (Google サイドウィキで表示)
location / { #host to gunicorn server proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; if (!-f $request_filename) { proxy_pass http://127.0.0.1:8000; break; } ##host and port to fastcgi server #fastcgi_pass 127.0.0.1:8080; #fastcgi_param PATH_INFO $fastcgi_script_name; #fastcgi_param REQUEST_METHOD $request_method; #fastcgi_param QUERY_STRING $query_string; #fastcgi_param CONTENT_TYPE $content_type; #fastcgi_param CONTENT_LENGTH $content_length; #fastcgi_pass_header Authorization; #fastcgi_intercept_errors off; }
nginxの使い方参考サイト。
内容:"WordPress on nginx with FastCGIに移行してみた"
- WordPress on nginx with FastCGIに移行してみた - stnard.jp (Google サイドウィキで表示)
ツイッターBOTもだいたい20行くらいで書けちゃうシンプルさ
"Flask"
- Welcome | Flask (A Python Microframework) (Google サイドウィキで表示)
import webbrowser
webbrowser.open("http://www.
"import webbrowser webbrowser.open("http://www.python.jp/doc/release/lib/module-webbrowser.html")"
- Pythonメモ: Webブラウザを開く (Google サイドウィキで表示)
これやってみるかな
内容:"Ubuntuにmoinmoinを導入する方法"
- Ubuntuにmoinmoinを導入する方法 - RENAISSANCE (Google サイドウィキで表示)
これは使えるのか?
内容:"Creating a Keyboard with CSS and jQuery"
- Creating a Keyboard with CSS and jQuery | Nettuts+ (Google サイドウィキで表示)
/usr/share/doc/python-webkit/
exampleフォルダにタブブラウザがある。
"/usr/share/doc/python-webkit/"
- Debian -- パッケージのファイル一覧: python-webkit/sid/armel (Google サイドウィキで表示)
日本サイトのDjangoチュートリアルは古くてUrls.
mysite.polls.views.index
↓
polls.views.index
myciteの部分はいらなくなる。
"This document describes Django 1.2"
- Django | Writing your first Django app, part 3 | Django documentation (Google サイドウィキで表示)
使えそうだけど、
"Matchbox Keyboard and Stroke"
- http://matchbox-project.org/?p=1 (Google サイドウィキで表示)
そのままの設定で動いたのを確認。
内容:"Deloying Django on Nginx"
- Deloying Django on Nginx « Python & My life (Google サイドウィキで表示)
initramfs
内容:"initramfsなブートディスク"
- initramfsなブートディスク: Notes On Notes (Google サイドウィキで表示)
WEBアプリサーバに使えそう。
内容:"gunicorn は何かというと、python で作られた WSGI に対応するウェブサーバーです。"
- Django アプリサーバ、gunicorn と fastcgi の比較 - Ian Lewis (Google サイドウィキで表示)
XPで使ったGavotte Ramdiskでできるようだ。
内容:"32bit 版の Windows 7 に Gavotte Ramdisk を導入した."
- 32bit 版の Windows 7 に Gavotte Ramdisk を導入した. とりコー/ウェブリブログ (Google サイドウィキで表示)
Xorg7.
前にアップデートした時、
"GUI環境を構築する (X.org 7.x/xfce 4.x)"
- 【FreeBSD】GUI環境を構築する (X.org 7.x/xfce 4.x) (Google サイドウィキで表示)
mini2440の場合、
$ vim /etc/rc.local
swapon /dev/mmcblk0p3
将来スワップOFFにするつもりだから、
メモリオーバーコミット設定とかは今のところしない予定。
"を追加デフォルトは60なので50に設定vm.swappiness = 50"
- 備忘録:Swap設定について(Linux)|taka_life (Google サイドウィキで表示)
フォントディレクトリを登録して、
xset +fp /usr/share/fonts/TrueType-
フォントパスを認識させる。
xset fp rehash
最後に再起動してもフォントを使えるようにする。
/etc/X11/xorg.conf
Section "Files"
:
FontPath "/usr/share/fonts/TrueType-
FontPath "/usr/share/fonts/TrueType-
:
EndSection
pytho-mozembedはやたら遅いから
python-webkitに切り替えようかな。
"WebkitとPythonを使ったアプリケーション開発"
- WebKitとPythonを使ったアプリケーション開発 « Stop Making Sense (Google サイドウィキで表示)
PowerPCの例だけど、ARM用に変えればうまくいきそう。
内容:"dpkg-cross -b"
- Debian/クロス開発環境/パッケージの作成 - Revulo's Laboratory (Google サイドウィキで表示)
Javaにはlog4j
.NETにはlog4net
Pythonにはlogging
があるらしい。
"Python標準ライブライリを使い倒す(logging編)"
- Python標準ライブライリを使い倒す(logging編) - HDEラボ (Google サイドウィキで表示)
# -*- coding: utf-8 -*- import os import sys import inspect #targetDirパス内のプラグインファイルを読み込む class PluginLoader: def __init__(self, targetDir): self.plugFuncNames = ['run', 'test', 'get_name', 'get_ver'] self.pluginDict = {} sys.path.append(targetDir) # プラグイン検索&登録 for item in os.listdir(targetDir): modname = inspect.getmodulename(item) if modname not in self.pluginDict.keys(): self.import_plugin(modname) def import_plugin(self, modName): cnt = 0 funcDict = {} # プラグイン関数検索 funcList = inspect.getmembers(__import__(modName), inspect.isfunction) funcNames = [item[0] for item in funcList] for fname in self.plugFuncNames: if fname in funcNames: cnt = cnt + 1 # プラグイン関数登録 if cnt == len(self.plugFuncNames): for name, funcObj in funcList: if name in self.plugFuncNames: funcDict[name] = funcObj self.pluginDict[modName] = funcDict print "plugin registered:%s" % modName def get_plugin_count(self): return len(self.pluginDict) def get_plugin_list(self): return self.pluginDict.keys() def get_plugin_module(self, modName): return PluginFunc(self.pluginDict[modName]) #プラグインモジュールを呼び出すクラス class PluginFunc: def __init__(self, ptr): self.plugin_ptr = ptr def run(self): return self.plugin_ptr['run']() def test(self): return self.plugin_ptr['test']() def get_name(self): return self.plugin_ptr['get_name']() def get_ver(self): return self.plugin_ptr['get_ver']() #動作確認用 if __name__ == '__main__': pl = PluginLoader("./plugins") print 'plugin module count : %d' % pl.get_plugin_count() print '------------------------' for name in pl.get_plugin_list(): print "plugin name: " + name func = pl.get_plugin_module(name) print func.get_name() print func.get_ver() print func.run() print func.test() print '------------------------'
# -*- coding: utf-8 -*- def run(): return "run" def get_name(): return "get_name" def get_ver(): return "get_version" def test(): return "test"
v1 最初の命令セット.ほとんど使用されていない
v2 乗算命令とコプロセッサをサポート
v2a キャッシュのサポートと同期命令(SWP)の追加
v3 ARM 社独立後の最初のアーキテクチャ
v3G 詳細不明.v2a と互換性なし
v3M 結果が64 ビットの乗算
v4 システム・モードのサポート.アーキテクチャの完成版
v4T Thumb モードの追加
v5T BLX,CLZ,BKPT 命令の追加
v5TE DSP 命令セットの追加
v5TEJ Java 拡張(Jazelle)の追加
v6 マルチメディア拡張(SIMD).同期命令の強化(LDREX/STREX).割り込み応答の高速化
v6T2 Thumb-2 モードの追加
v6Z TrustZone の追加
v7 最新アーキテクチャ(詳細は第7 章を参照)
ARM1-3 Acorn 社時代に設計されたコア(現在は使われていない)
ARM4-5 存在しない
ARM6 ARM 社として最初に設計されたコア(現在は使われていない)
ARM7 現在のARM プロセッサの基本コア
ARM8 (現在は使われていない)
ARM9 5 段パイプラインへ拡張
ARM10 6 段パイプラインへ拡張
ARM11 8 段パイプラインへ拡張
$ aptitude upgrade
Segmentation fault
こうなったときは、キャッシュファイルが壊れた時らしいので、
$ rm /var/cache/apt/pkgcache.bin
$ rm /var/cache/apt/srcpkgcache.bin
$ apt-get update
"# rm /var/cache/apt/pkgcache.bin # rm /var/cache/apt/srcpkgcache.bin どうやらキャッシュファイルが壊れてたらしい"
- apt-getもaptitudeもエラーで止まる - HYPERSPACE UNIVERSE NEWS (Google サイドウィキで表示)