{"id":2840,"date":"2020-07-24T23:46:32","date_gmt":"2020-07-24T14:46:32","guid":{"rendered":"http:\/\/matoken.org\/blog\/?p=2840"},"modified":"2020-07-24T23:46:56","modified_gmt":"2020-07-24T14:46:56","slug":"hello-world-in-sipeed-lichee-nano","status":"publish","type":"post","link":"https:\/\/matoken.org\/blog\/2020\/07\/24\/hello-world-in-sipeed-lichee-nano\/","title":{"rendered":"Sipeed Lichee Nano\u3067hello world"},"content":{"rendered":"<div class=\"paragraph\">\n<p>2020-07-23\u4f4e\u30ec\u30d9\u30eb\u52c9\u5f37\u4f1a\u306b\u53c2\u52a0\u3057\u307e\u3057\u305f\uff0eZoom.us\u3067\u306e\u958b\u50ac\u3067\u3057\u305f\uff0e<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li><a href=\"https:\/\/lowleveltokyo.connpass.com\/event\/180412\/\">\u4f4e\u30ec\u30d9\u30eb\u52c9\u5f37\u4f1a2020\u5e7407\u6708 &#8211; connpass<\/a><\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>\u5185\u5bb9\u306fLinux\u540d\u523a\u7684\u306a\u3082\u306e\u3092\u958b\u767a\u3057\u3088\u3046\u3068\u3044\u3046\u5185\u5bb9\u3067\uff0c\u30ea\u30d5\u30a1\u30ec\u30f3\u30b9\u3068\u3057\u3066SD\u30ab\u30fc\u30c9\u30b5\u30a4\u30ba\u306e\u5c0f\u3055\u306aLinux\u306e\u52d5\u4f5c\u3059\u308barm\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u306eSipeed Lichee Nano\u3092\u4f7f\u3044\u307e\u3057\u305f\uff0e<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li><a href=\"http:\/\/nano.lichee.pro\/\">\u8354\u679d\u6d3eNano \u5168\u6d41\u7a0b\u6307\u5357 \u2014 \u8354\u679d\u6d3eNano \u5168\u6d41\u7a0b\u6307\u5357 documentation<\/a><\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>\u6b32\u3057\u3044\u5834\u5408\u306f1000\u5186\u3061\u3087\u3044\u304f\u3089\u3044\u304b\u3089\u3067\u5165\u624b\u3067\u304d\u305d\u3046\u3067\u3059\uff0e<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li><a href=\"https:\/\/www.switch-science.com\/catalog\/5705\/\">Sipeed Lichee Nano &#8211; \u30b9\u30a4\u30c3\u30c1\u30b5\u30a4\u30a8\u30f3\u30b9<\/a> 1045\u5186 + \u9001\u6599200\u5186 =1245\u5186<\/li>\n<li><a href=\"https:\/\/www.shigezone.com\/?product=lichee-nano\">Lichee Nano \u2013 Shigezone Online<\/a> 990\u5186 + \u9001\u6599400\u5186 = 1390\u5186<\/li>\n<li><a href=\"https:\/\/www.sengoku.co.jp\/mod\/sgk_cart\/detail.php?code=EEHD-5JGU\">\u30105705\u3011SIPEED-LICHEE-NANO Sipeed Lichee Nano<\/a> 1050\u5186 + \u9001\u6599350\u5186 = 1400\u5186<\/li>\n<li><a href=\"http:\/\/akizukidenshi.com\/catalog\/g\/gM-14787\/\">\uff2c\uff49\uff43\uff48\uff45\uff45\uff30\uff49\u3000\uff2e\uff41\uff4e\uff4f\u3000\uff11\uff16\uff2d\u3000\uff46\uff4c\uff41\uff53\uff48: \u30de\u30a4\u30b3\u30f3\u95a2\u9023 \u79cb\u6708\u96fb\u5b50\u901a\u5546-\u96fb\u5b50\u90e8\u54c1\u30fb\u30cd\u30c3\u30c8\u901a\u8ca9<\/a>\u30001000\u5186 + \u9001\u6599500\u5186 = 1500\u5186<\/li>\n<li><a href=\"https:\/\/jp.seeedstudio.com\/Sipeed-Lichee-Nano-Linux-Development-Board-p-2892.html\">Sipeed Lichee Nano Linux \u958b\u767a\u30dc\u30fc\u30c9 16M Flash &#8211; Seeed Studio<\/a> 707\u5186+ shipping<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>Lichee Nano\u3092\u6301\u3063\u3066\u3044\u306a\u3044\u4eba\u306f\u30ea\u30e2\u30fc\u30c8\u3067\u89e6\u308c\u308b\u3088\u3046\u306b\u3057\u3066\u3042\u3063\u305f\u306e\u3067\u6301\u3063\u3066\u3044\u306a\u3044\u79c1\u3082\u697d\u3057\u3081\u307e\u3057\u305f\uff0e<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3053\u306e\u30ea\u30e2\u30fc\u30c8\u958b\u767a\u306e\u4ed5\u7d44\u307f\u306fLichee Nano\u3068Raspberry Pi\u3092USB\u7d4c\u7531\u306eUART\u3067\u63a5\u7d9a\u3057\uff0cRaspberry Pi\u3067GNU screen\u3092\u8d77\u52d5\uff0cssh\u7d4c\u7531\u3067GNU screen\u306b\u7e4b\u3044\u3067\u64cd\u4f5c\u3068\u3044\u3046\u611f\u3058\u3067\u3059\uff0e<br \/>\nGNU screen\u3092Gotty\u7b49\u306b\u3059\u308b\u3068\u30a6\u30a7\u30d6\u30d6\u30e9\u30a6\u30b6\u3067\u53c2\u52a0\u3067\u304d\u3066\u3061\u3087\u3063\u3068\u4fbf\u5229\u304b\u3082\u3068\u601d\u3063\u305f\u308a\u3082\uff0e(GoTTY\u306f\u958b\u767a\u6b62\u307e\u3063\u3066\u308b\u3088\u3046\u306b\u898b\u3048\u308b\u304b\u3089<a href=\"https:\/\/github.com\/yudai\/gotty#alternatives\">\u5225\u306e\u3082\u306e<\/a>\u306e\u307b\u3046\u304c\u3044\u3044\u304b\u3082\u3057\u308c\u306a\u3044)<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li><a href=\"https:\/\/matoken.org\/blog\/2015\/08\/24\/terminal-web-share-gotty\/\">\u7aef\u672b\u3092\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u306b Web \u3067\u5171\u6709\u3067\u304d\u308b GoTTY \u2013 matoken\u2019s meme<\/a><\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>Lichee Nano\u3067\u4f55\u304b\u3092\u52d5\u304b\u3057\u305f\u3044\uff0earm\u3060\u3051\u3069armhf\u52d5\u304f\u306e\u304b\u306a?\u3068\u308a\u3042\u3048\u305a\u306a\u306b\u304b\u8ee2\u9001\u3057\u3066\u52d5\u304b\u3057\u3066\u307f\u3088\u3046\u3068\uff0e<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3068\u308a\u3042\u3048\u305aDebian\u306earmhf\u30d0\u30a4\u30ca\u30ea\u3092uuencode\u3057\u3066\u30b3\u30d4\u30da\u3067\u8ee2\u9001\u3057\u3066\u307f\u307e\u3059.\u3053\u308c\u304c\u52d5\u3051\u3070Debian\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u7fa4\u304c\u5229\u7528\u3067\u304d\u308b\u304b\u3082\u3060\u3051\u3069\u2026\u2026\uff0e<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u307e\u305a\u306f\u7c21\u5358\u305d\u3046\u306afortune\u3092\u8a66\u3057\u307e\u3059.<\/p>\n<\/div>\n<div class=\"listingblock shell\">\n<div class=\"title\">Debian sid\u3067fortune-mod\u30d1\u30c3\u30b1\u30fc\u30b8\u306earmhf\u30d0\u30a4\u30ca\u30ea\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u5c55\u958b(add archtecture armhf\u3057\u3066\u3042\u308b\u74b0\u5883)<\/div>\n<div class=\"content\">\n<pre class=\"highlight\"><code>$ apt download -t armhf fortune-mod\n$ unar fortune-mod_1.99.1-7+b1_armhf.deb\n$ cd fortune-mod_1.99.1-7+b1_armhf\n$ tar xf data.tar.xz\n$ cd usr\/games<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>Lichee Nano\u306fserial\u3067\u63a5\u7d9a\u3055\u308c\u3066\u3044\u3066\uff0cInternet\u306b\u306f\u7e4b\u304c\u3063\u3066\u3044\u306a\u3044\u306e\u3067\u30d0\u30a4\u30ca\u30ea\u30d5\u30a1\u30a4\u30eb\u306e\u8ee2\u9001\u306b\u306fuudecode\/uuencode\u3092\u4f7f\u3044\u307e\u3057\u305f\uff0e\u4e45\u3005\u3067\u3059\uff0e<br \/>\n\u624b\u5143\u306eGNU sharutils 4.15.2\u306euudecode\u306b\u306fbase64\u3092\u4f7f\u3046 <code>-m, --base64<\/code> \u304c\u3042\u308b\u306e\u3067\u826f\u3055\u305d\u3046\uff0e\u3068\u601d\u3063\u305f\u3051\u3069Lichee Nano\u306e\u65b9\u306fbusybox\u306e\u3082\u306e\u3067\u975e\u5bfe\u5fdc\u3067\u3057\u305f\uff0e<\/p>\n<\/div>\n<div class=\"listingblock shell\">\n<div class=\"title\">\u30ed\u30fc\u30ab\u30eb\u7aef\u672b\u3067\u5727\u7e2e\u3057\u3066uuencode\u3057\u3066\u30af\u30ea\u30c3\u30d7\u30dc\u30fc\u30c9\u3078<\/div>\n<div class=\"content\">\n<pre class=\"highlight\"><code>$ gzip -c fortune | uuencode fortune.gz &gt; fortune.gz.uu\n$ cat fortune.gz.uu | xclip<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"listingblock shell\">\n<div class=\"title\">\u30ea\u30e2\u30fc\u30c8\u3067\u4f38\u5f35\u3057\u3066\u89e3\u51cd<\/div>\n<div class=\"content\">\n<pre class=\"highlight\"><code># cat | uudecode    #\u3053\u3053\u3067\u30af\u30ea\u30c3\u30d7\u30dc\u30fc\u30c9\u304b\u3089\u8cbc\u308a\u4ed8\u3051\n# zcat fortune.gz &gt; fortune\n# rm fortune.gz<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u305d\u3057\u3066\u2026\u200b\u2026\u200b<\/p>\n<\/div>\n<div class=\"listingblock shell\">\n<div class=\"content\">\n<pre class=\"highlight\"><code># .\/fortune\n-sh: .\/fortune: not found\n# ldd .\/fortune\nchecking sub-depends for 'not found'\nchecking sub-depends for '\/lib\/libc.so.6'\n\/lib\/ld-linux.so.3 (0xb6fa0000)\nlibrecode.so.0 =&gt; not found (0x00000000)\nlibc.so.6 =&gt; \/lib\/libc.so.6 (0x00000000)\n\/lib\/ld-linux.so.3 =&gt; \/lib\/ld-linux.so.3 (0x00000000)<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3053\u308c\u3092\u52d5\u304b\u3059\u306e\u306f\u30c0\u30a4\u30ca\u30df\u30c3\u30af\u30ea\u30f3\u30af\u3055\u308c\u3066\u3044\u308b\u3082\u306e\u3092\u7528\u610f\u3057\u3066\u3042\u3052\u306a\u3044\u3068\u3044\u3051\u306a\u3044\u306e\u3067\u30b9\u30c8\u30ec\u30fc\u30b8\u306e\u5bb9\u91cf\u7684\u306b\u96e3\u3057\u3044\u3067\u3059\u306d\uff0e<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3053\u3053\u3067\u306fgzip\u3067\u5727\u7e2e\u3057\u307e\u3057\u305f\u304c\uff0cLichee Nano\u306ebusybox\u306bxz\u304c\u3042\u308a\u307e\u3057\u305f\uff0egzip\u3088\u308axz\u306b\u3057\u305f\u307b\u3046\u304c\u5c0f\u3055\u304f\u306a\u308a\u307e\u3059\u306d\uff0e\u8a66\u3057\u3066\u307f\u308b\u3068\u3053\u3093\u306a\u611f\u3058\u3067\u3057\u305f\uff0e<code>$ xz -c fortune | uuencode fortune.xz &gt; fortune.xz.uu<\/code><\/p>\n<\/div>\n<div class=\"listingblock shell\">\n<div class=\"title\">\u30b5\u30a4\u30ba\u6bd4\u8f03<\/div>\n<div class=\"content\">\n<pre class=\"highlight\"><code>-rw-r--r-- 1 matoken matoken 22368 Jul 23 15:11 fortune #\u5143\u30d5\u30a1\u30a4\u30eb\n-rw-r--r-- 1 matoken matoken 30844 Jul 23 14:58 fortune.uu #uudecode\n-rw-r--r-- 1 matoken matoken 14975 Jul 23 15:08 fortune.gz.uu #zip + uudecode\n-rw-r--r-- 1 matoken matoken 13047 Jul 23 15:47 fortune.xz.uu #xz + uudecode<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u305d\u3046\u3044\u3048\u3070\u3042\u307e\u308a\u6709\u540d\u3067\u306f\u306a\u3044\u3067\u3059\u304cbasE91\u306a\u3093\u3066\u3082\u306e\u3082\u3042\u308a\u307e\u3059\uff0ebase64\u3088\u308a\u30b5\u30a4\u30ba\u304c\u5c0f\u3055\u304f\u306a\u308a\u307e\u3059\u304c\u5c0e\u5165\u304b\u3089\u3084\u3089\u306a\u3044\u3068\u3044\u3051\u306a\u3044\u306e\u3067\u3061\u3087\u3063\u3068\u9762\u5012\uff0e<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li><a href=\"https:\/\/wiki.matoken.org\/unix\/commands\/basE91\">unix:commands:base91 [wiki.matoken.org<\/a>]<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>Hello world\u3092\u8a66\u3057\u3066\u307f\u307e\u3059\uff0e\u9069\u5f53\u306b\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u7528\u610f\u3057\u3066\u30b9\u30bf\u30c6\u30a3\u30c3\u30af\u30ea\u30f3\u30af\u3067\u30b3\u30f3\u30d1\u30a4\u30eb\u3057\u3066\u307f\u307e\u3059\uff0e<\/p>\n<\/div>\n<div class=\"listingblock shell\">\n<div class=\"content\">\n<pre class=\"highlight\"><code>$ cat hello.c\n#include &lt;stdio.h&gt;\nint\nmain(void)\n{\n    printf(\"Hello, world!\\n\");\n    return 0;\n}\n$ gcc -static .\/hello.c\n$ .\/a.out\nHello, world!\n$ ls -l a.out\n-rwxr-xr-x 1 pi pi 571120 7\u6708 23 16:18 a.out<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3067\u304b\u3044\u2026\u200b\u2026\u200b<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3068\u308a\u3042\u3048\u305a\u3067\u304b\u3044\u306e\u306f\u304a\u3044\u3068\u3044\u3066\u3053\u308c\u3060\u3068arm64\u306a\u306e\u3067\u52d5\u304f\u306f\u305a\u304c\u306a\u3044\uff0e\u3068\u3044\u3046\u3053\u3068\u3067\u30af\u30ed\u30b9\u30b3\u30f3\u30d1\u30a4\u30eb\u74b0\u5883\u3092\u7528\u610f\u3057\u307e\u3059\uff0e<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li><a href=\"https:\/\/wiki.debian.org\/CrossToolchains\">CrossToolchains &#8211; Debian Wiki<\/a><\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>\u4eca\u56de\u8a66\u3057\u305f\u30db\u30b9\u30c8\u306fDebian sid amd64\/Ubuntu 20.04 LTS arm64\/Raspberry Pi OS arm64\u3067\u3059\uff0e\u3044\u305a\u308c\u3082\u540c\u3058\u624b\u9806\u3067OK\u3067\u3057\u305f\uff0e<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><code>crossbuild-essential-&lt;arch&gt;<\/code> \u30d1\u30c3\u30b1\u30fc\u30b8\u3067\u5404\u7a2e\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u306e\u74b0\u5883\u304c\u5c0e\u5165\u3067\u304d\u308b\u3088\u3046\u3067\u3059\uff0e<\/p>\n<\/div>\n<div class=\"listingblock shell\">\n<div class=\"content\">\n<pre class=\"highlight\"><code>$ apt-cache search crossbuild-essential-\ncrossbuild-essential-amd64 - Informational list of cross-build-essential packages\ncrossbuild-essential-arm64 - Informational list of cross-build-essential packages\ncrossbuild-essential-armel - Informational list of cross-build-essential packages\ncrossbuild-essential-armhf - Informational list of cross-build-essential packages\ncrossbuild-essential-i386 - Informational list of cross-build-essential packages\ncrossbuild-essential-powerpc - Informational list of cross-build-essential packages\ncrossbuild-essential-ppc64el - Informational list of cross-build-essential packages\ncrossbuild-essential-s390x - Informational list of cross-build-essential packages\ncrossbuild-essential-mips - Informational list of cross-build-essential packages\ncrossbuild-essential-mips64 - Informational list of cross-build-essential packages\ncrossbuild-essential-mips64el - Informational list of cross-build-essential packages\ncrossbuild-essential-mips64r6 - Informational list of cross-build-essential packages\ncrossbuild-essential-mips64r6el - Informational list of cross-build-essential packages\ncrossbuild-essential-mipsel - Informational list of cross-build-essential packages\ncrossbuild-essential-mipsr6 - Informational list of cross-build-essential packages\ncrossbuild-essential-mipsr6el - Informational list of cross-build-essential packages<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u6ca2\u5c71\u3042\u308a\u307e\u3059\uff0e\u4eca\u56de\u306farmlf\/armhf\u306e <code>crossbuild-essential-armel<\/code>, <code>crossbuild-essential-armhf<\/code> \u3092\u5c0e\u5165\u3057\u307e\u3057\u305f\uff0e<\/p>\n<\/div>\n<div class=\"listingblock shell\">\n<div class=\"content\">\n<pre class=\"highlight\"><code>$ sudo apt install crossbuild-essential-armel crossbuild-essential-armhf<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>gcc\u3060\u3051\u3067\u3044\u3044\u5834\u5408\u306farmlf\u306f <code>gcc-arm-linux-gnueabi<\/code>\uff0carmhf\u306f <code>gcc-arm-linux-gnueabihf<\/code> \u3060\u3051\u3067OK\u3067\u3059\uff0e<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u307e\u305a\u306f <code>arm-linux-gnueabihf-gcc<\/code> \u3092\u4f7f\u3063\u3066armhf\u306e\u30d0\u30a4\u30ca\u30ea\u3092\u4f5c\u308a\u307e\u3059\uff0e<\/p>\n<\/div>\n<div class=\"listingblock shell\">\n<div class=\"content\">\n<pre class=\"highlight\"><code>$ \/usr\/bin\/arm-linux-gnueabihf-gcc -static .\/hello.c\n$ strip a.out\n$ xz -c a.out | uuencode a.out.xz &gt; a.out.xz.uu<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>armhf\u306f\u99c4\u76ee\u305d\u3046\u3067\u3059\uff0e<\/p>\n<\/div>\n<div class=\"listingblock shell\">\n<div class=\"content\">\n<pre class=\"highlight\"><code># cat | uudecode\n^d\n# xzcat .\/a.out.xz &gt; .\/a.out\n# chmod +x .\/a.out\n# .\/a.out\nSegmentation fault<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u6b21\u306f <code>gcc-arm-linux-gnueabi<\/code> \u3067armlf\u306e\u30d0\u30a4\u30ca\u30ea\u3092\u4f5c\u3063\u3066\u8a66\u3059\u3068\u52d5\u304d\u307e\u3057\u305f\uff0e<\/p>\n<\/div>\n<div class=\"listingblock shell\">\n<div class=\"content\">\n<pre class=\"highlight\"><code>$ \/usr\/bin\/arm-linux-gnueabi-gcc -static .\/hello.c\n$ strip a.out\n$ xz -c a.out | uuencode a.out.xz &gt; a.out.xz.uu<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"listingblock shell\">\n<div class=\"content\">\n<pre class=\"highlight\"><code># cat | uudecode\n^d\n# xzcat .\/a.out.xz &gt; .\/a.out\n# chmod +x .\/a.out\n# .\/a.out\nHello, world!\n# \/usr\/bin\/time -f \"%M KB\" .\/a.out\nHello, world!\n2144 KB<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3053\u306e\u8fba\u308a\u3067\u4eca\u56de\u306f\u6642\u9593\u5207\u308c\uff0e\u6b21\u56de\u306e\u540c\u3058\u3088\u3046\u306a\u611f\u3058\u306b\u306a\u308a\u305d\u3046\u3067\u3059\uff0e\u8208\u5473\u306e\u3042\u308b\u65b9\u306f\u4ee5\u4e0b\u306e\u30da\u30fc\u30b8\u304b\u3089\uff0e<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li><a href=\"https:\/\/lowleveltokyo.connpass.com\/event\/183952\/\">\u4f4e\u30ec\u30d9\u30eb\u52c9\u5f37\u4f1a2020\u5e7408\u6708 &#8211; connpass<\/a><\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3068\u308a\u3042\u3048\u305aarmel\u306e\u30d0\u30a4\u30ca\u30ea\u304c\u52d5\u304f\u3088\u3046\u306a\u306e\u304c\u308f\u304b\u3063\u305f\u306e\u3067\u9762\u767d\u305d\u3046\u306a\u5c0f\u3055\u306a\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u8a66\u305d\u3046\u304b\u306a\u3068\u601d\u3063\u3066\u3044\u307e\u3059\uff0ecowsay\u3068\u304b\u597d\u304d\u306a\u3093\u3060\u3051\u3069\u3053\u308c\u306fPerl\u306a\u306e\u3067\u5bb9\u91cf\u7684\u306b\u96e3\u3057\u305d\u3046\uff0e\u3068\u308a\u3042\u3048\u305afortune\u3042\u305f\u308a\u304b\u306a?<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u4ee5\u524dPQI Air Pen\u3067\u3084\u3063\u305f\u3088\u3046\u306bSD card\u3092\u7528\u610f\u3057\u3066\u305d\u3053\u306bDebian armlf\u74b0\u5883\u3092\u5c55\u958b\u3057\u3066chroot\u3068\u304b\u3082\u3067\u304d\u305d\u3046\u3067\u3059\uff0e<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li><a href=\"https:\/\/speakerdeck.com\/matoken\/pqi-air-pen-hack\">PQI Air Pen Hack &#8211; Speaker Deck<\/a><\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>2020-07-23\u4f4e\u30ec\u30d9\u30eb\u52c9\u5f37\u4f1a\u306b\u53c2\u52a0\u3057\u307e\u3057\u305f\uff0eZoom.us\u3067\u306e\u958b\u50ac\u3067\u3057\u305f\uff0e \u4f4e\u30ec\u30d9\u30eb\u52c9\u5f37\u4f1a2020\u5e7407\u6708 &#8211; connpass \u5185\u5bb9\u306fLinux\u540d\u523a\u7684\u306a\u3082\u306e\u3092\u958b\u767a\u3057\u3088\u3046\u3068\u3044\u3046\u5185\u5bb9\u3067\uff0c\u30ea\u30d5\u30a1\u30ec\u30f3\u30b9\u3068\u3057\u3066 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"webmentions_disabled_pings":false,"webmentions_disabled":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":""},"categories":[547,7,517,6,546,199,63,144,12],"tags":[552,556,554,553,555,424,440],"class_list":["post-2840","post","type-post","status-publish","format-standard","hentry","category-buster-raspberry-pi-os","category-debian-linux","category-focal-fossa20-04","category-linux","category-raspberry-pi-os","category-sid","category-ubuntu","category-144","category-12","tag-gcc","tag-include","tag-lichee-nano","tag-sipeed","tag-uudecode","tag-xz","tag-zip"],"_links":{"self":[{"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/posts\/2840","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/comments?post=2840"}],"version-history":[{"count":0,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/posts\/2840\/revisions"}],"wp:attachment":[{"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/media?parent=2840"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/categories?post=2840"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/tags?post=2840"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}