{ "version": "https://jsonfeed.org/version/1.1", "user_comment": "This feed allows you to read the posts from this site in any feed reader that supports the JSON Feed format. To add this feed to your reader, copy the following URL -- https://matoken.org/blog/tag/include/feed/json/ -- and add it your reader.", "home_page_url": "https://matoken.org/blog/tag/include/", "feed_url": "https://matoken.org/blog/tag/include/feed/json/", "language": "ja", "title": "include – matoken's blog", "description": "Is there no plan B?", "icon": "https://matoken.org/blog/wp-content/uploads/2025/03/cropped-1865f695c4eecc844385acef2f078255036adccd42c254580ea3844543ab56d9.jpeg", "items": [ { "id": "https://matoken.org/blog/?p=4080", "url": "https://matoken.org/blog/2024/08/12/m-is-displayed-only-in-git-diff-differences/", "title": "git diff \u306e \u5dee\u5206\u306b\u3060\u3051 ^M \u304c\u8868\u793a\u3055\u308c\u308b", "content_html": "
git diff \u3067\u5909\u7a2e\u7b87\u6240\u3060\u3051 ^M \u304c\u4ed8\u3044\u3066\u308b\u306e\u306b\u6c17\u3065\u304d\u307e\u3057\u305f\uff0e
\n\u7de8\u96c6\u30df\u30b9\u3066\u6539\u884c\u30b3\u30fc\u30c9\u3092\u9593\u9055\u3048\u305f\u304b\u3068\u601d\u3063\u305f\u3051\u3069\u5143\u3005 \\r\\n \u306a\u30d5\u30a1\u30a4\u30eb\u3067\u7de8\u96c6\u7b87\u6240\u4ee5\u5916\u3082\u540c\u3058 \\r\\n \u3067\u3059\uff0e
\n\u3067\u3082\u975e\u7de8\u96c6\u7b87\u6240\u306f ^M \u304c\u51fa\u307e\u305b\u3093\uff0e
\n
$ git diff -p\ndiff --git a/src/onnxstream.cpp b/src/onnxstream.cpp\nindex 5ace952..bbc62f6 100644\n--- a/src/onnxstream.cpp\n+++ b/src/onnxstream.cpp\n@@ -503,7 +503,7 @@ public:\n throw std::runtime_error(\"failed to initialize XNNPACK\");\n }\n\n- ~XnnPack()\n+ ~XnnPack() noexcept(false)^M (1)\n {\n for (auto& entry : m_ops_cache)\n {\ndiff --git a/src/onnxstream.h b/src/onnxstream.h\nindex 6746f61..9c2755a 100644\n--- a/src/onnxstream.h\n+++ b/src/onnxstream.h\n@@ -1,5 +1,6 @@ e '\n #pragma once\n\n+#include <algorithm>^M (2)\n #include <limits>\n #include <vector>\n #include <functional>\n\u3053\u3053\u3068
\n\u3053\u3053\u306e\u7de8\u96c6\u5dee\u5206\u306b ^M
\n\\r\\n \u306b\u306a\u3063\u3066\u3044\u308b$ head -4 ../../src/onnxstream.h | od -xc\n0000000 7023 6172 6d67 2061 6e6f 6563 0a0d 0a0d\n # p r a g m a o n c e \\r \\n \\r \\n\n0000020 6923 636e 756c 6564 3c20 6c61 6f67 6972\n # i n c l u d e < a l g o r i\n0000040 6874 3e6d 0a0d 6923 636e 756c 6564 3c20\n t h m > \\r \\n # i n c l u d e <\n0000060 696c 696d 7374 0d3e 000a\n l i m i t s > \\r \\n\n0000071\n
\u3068\u3044\u3046\u3053\u3068\u3067\u30d5\u30a1\u30a4\u30eb\u306e\u5185\u5bb9\u306f\u554f\u984c\u7121\u3055\u305d\u3046\u3067\u3059\u304c\uff0c git diff \u306e\u8868\u793a\u4e0a\u306e\u554f\u984c\u306e\u3088\u3046\u3067\u3059\uff0e
\n\u691c\u7d22\u3057\u3066\u4ee5\u4e0b\u306e\u30da\u30fc\u30b8\u3092\u898b\u3064\u3051\u307e\u3057\u305f\uff0e
\n\u3044\u308d\u3044\u308d\u306a\u65b9\u6cd5\u304c\u66f8\u304b\u308c\u3066\u3044\u307e\u3059\u304c\uff0c\u3061\u3087\u3063\u3068\u8a66\u3057\u305f\u3044\u30ea\u30dd\u30b8\u30c8\u30ea\u306a\u306e\u3067\u6539\u884c\u30b3\u30fc\u30c9\u3092\u5909\u66f4\u3059\u308b\u306e\u3067\u306f\u306a\u304f \\M \u306e\u8868\u793a\u3092\u6291\u5236\u3059\u308b\u3088\u3046\u306b\u3057\u305f\u3044\u3067\u3059\uff0e
\u4e00\u756a\u304a\u624b\u8efd\u305d\u3046\u306a\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u3044\u304f\u3064\u304b\u8a66\u3057\u307e\u3057\u305f\u304c\u4ee5\u4e0b\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u3059\u3079\u3066\u5909\u5316\u304c\u898b\u3089\u308c\u307e\u305b\u3093\u3067\u3057\u305f\uff0e
\n$ git diff -b\n$ git diff --ignore-cr-at-eol\n$ git diff --ignore-space-change\n$ git diff --ignore-all-space\n
git-config \u306b whitespace = cr-at-eol \u3092\u8a2d\u5b9a\u3057\u3066\u307f\u307e\u3059\uff0e CR/LF \u306e\u30d5\u30a1\u30a4\u30eb\u306f\u3042\u307e\u308a\u4f7f\u3046\u3053\u3068\u306f\u306a\u3044\u306e\u3067 --local \u306b\u8a2d\u5b9a\u3057\u3066\u304a\u304d\u307e\u3059\uff0e
$ git config --local core.whitespace cr-at-eol\n$ grep cr-at-eol .git/config\n whitespace = cr-at-eol\n
\u3053\u306e\u8a2d\u5b9a\u3092\u3059\u308b\u3053\u3068\u3067 ^M \u304c\u8868\u793a\u3055\u308c\u306a\u304f\u306a\u308a\u307e\u3057\u305f\uff0e
$ git diff\ndiff --git a/src/onnxstream.cpp b/src/onnxstream.cpp\nindex 5ace952..bbc62f6 100644\n--- a/src/onnxstream.cpp\n+++ b/src/onnxstream.cpp\n@@ -503,7 +503,7 @@ public:\n throw std::runtime_error(\"failed to initialize XNNPACK\");\n }\n\n- ~XnnPack()\n+ ~XnnPack() noexcept(false)\n {\n for (auto& entry : m_ops_cache)\n {\ndiff --git a/src/onnxstream.h b/src/onnxstream.h\nindex 6746f61..9c2755a 100644\n--- a/src/onnxstream.h\n+++ b/src/onnxstream.h\n@@ -1,5 +1,6 @@\n #pragma once\n\n+#include <algorithm>\n #include <limits>\n #include <vector>\n #include <functional>\n$ git --version\ngit version 2.45.2\n$ dpkg-query -W git\ngit 1:2.45.2-1\n$ lsb_release -dr\nDescription: Debian GNU/Linux trixie/sid\nRelease: n/a\n$ arch\nx86_64\n
Gal\u00e8ne \u306b\u63a5\u7d9a\u3057\uff0c Whisper.cpp \u306e Speach To Text \u3067\u6587\u5b57\u8d77\u3053\u3057\u3057\u305f\u30c6\u30ad\u30b9\u30c8\u3092\u30c6\u30ad\u30b9\u30c8\u30c1\u30e3\u30c3\u30c8\u6b04\u306b\u6295\u7a3f\u3059\u308b galene-stt \u3092\u5c11\u3057\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\uff0e
\n\n
\u6700\u8fd1\uff0c\u81ea\u5206\u306e\u30db\u30b9\u30c8\u3059\u308b\u52c9\u5f37\u4f1a\u306a\u3069\u3067\u306f Gal\u00e8ne \u3068\u3044\u3046\u30d3\u30c7\u30aa\u30ab\u30f3\u30d5\u30a1\u30ec\u30f3\u30b9\u30b5\u30fc\u30d0\u30fc\u3092\u30bb\u30eb\u30d5\u30db\u30b9\u30c8\u3057\u3066\u5229\u7528\u3057\u3066\u3044\u307e\u3059\uff0e
\n\u3053\u308c\u306f WebRTC \u306e SFU \u3092\u5229\u7528\u3057\u3066\u3044\u308b\u306e\u3067\u30b5\u30fc\u30d0\u30fc\u306e\u30ea\u30bd\u30fc\u30b9\u304c\u3068\u3066\u3082\u5c11\u306a\u304f\u3066\u6e08\u307f\u307e\u3059\uff0eLinux/armv7 \u3084Linux/mips \u306e OpenWRT \u3067\u3082\u52d5\u4f5c\u3057\u3066\u5c11\u4eba\u6570\u3067\u3042\u308c\u3070 Raspberry Pi \u521d\u4ee3\u304f\u3089\u3044\u306e\u30b9\u30da\u30c3\u30af\u3067\u3082\u5341\u5206\u52d5\u4f5c\u3057\u307e\u3059\uff0e
\n\u3088\u304f\u5229\u7528\u3055\u308c\u308b Jitsi meet \u3084 BigBlueButton \u306a\u3069\u306f\u5927\u91cf\u306e\u30ea\u30bd\u30fc\u30b9\u304c\u5fc5\u8981\u306a\u306e\u3067\u30bb\u30eb\u30d5\u30db\u30b9\u30c8\u3059\u308b\u306e\u306f\u3061\u3087\u3063\u3068\u8f9b\u3044\u3067\u3059\uff0e
| \n Note \n | \n\nJitsi Meet \u3067\u306f 8×8 \u304c\u30b9\u30dd\u30f3\u30b5\u30fc\u3057\u3066\u3044\u308b https://meet.jit.si/ \u3092\u4f7f\u3063\u305f\u308a\uff0cGoogle Compute Engine \u306a\u3069\u306b\u5c0e\u5165\u3057\u3066\uff0c\u30df\u30fc\u30c6\u30a3\u30f3\u30b0\u5b57\u3060\u3051\u8d77\u52d5\u3057\u3066\u8cbb\u7528\u3092\u6291\u3048\u308b\u3068\u3044\u3046\u4f7f\u3044\u65b9\u3092\u3057\u3066\u3044\u308b\u4eba\u3082\u5c45\u307e\u3059\uff0e\n | \n
| \n Note \n | \n\n \n \n\n\u4eca\u5e74\u306e LibrePlanet \u3067\u306f\u30d3\u30c7\u30aa\u30b5\u30fc\u30d0\u30fc\u306b BigBlueButton \u306b\u4ee3\u308f\u308a Gal\u00e8ne \u304c\u4f7f\u308f\u308c\u305f\u305d\u3046\u3067\u3059\uff0e \n | \n
galene-stt \u306f Galene \u306b\u63a5\u7d9a\u3057\u3066\u30aa\u30fc\u30c7\u30a3\u3092 Whisper.cpp \u3092\u4f7f\u3063\u3066\u6587\u5b57\u8d77\u3053\u3057\u3092\u3057\uff0c\u7d50\u679c\u3092 Galene \u306e\u30c6\u30ad\u30b9\u30c8\u30c1\u30e3\u30c3\u30c8\u306b\u6295\u7a3f\u3059\u308b\u3082\u306e\u306e\u3088\u3046\u3067\u3059\uff0e\u30b5\u30fc\u30d0\u30fc\u3067\u306f\u5229\u7528\u8005\u304c\u3072\u3068\u308a\u5897\u3048\u308b\u3060\u3051\u306a\u306e\u3067\u3042\u307e\u308a\u8ca0\u8377\u304c\u304b\u304b\u3089\u306a\u3044\u306e\u304c\u826f\u3055\u305d\u3046\u3067\u3059\uff0e
\ngalene-stt \u306f Whisper.cpp \u3092\u4f7f\u3044\u6587\u5b57\u8d77\u3053\u3057\u3092\u884c\u3046\u306e\u3067\u5148\u305a\u306f Whisper.cpp \u3092\u5c0e\u5165\u3057\u307e\u3059\uff0e
\n$ git clone https://github.com/ggerganov/whisper.cpp\n$ cd whisper.cpp\n$ cmake -Bbuild\n$ cd build\n$ make -j`nproc`\n$ sudo make install\n$ cd ..\n
$ make base (1)\n$ cd ..\n
\u30e2\u30c7\u30eb\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\uff0e\u3053\u3053\u3067\u306f base \u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u3044\u308b\uff0e\u30de\u30b7\u30f3\u30b9\u30da\u30c3\u30af\u306a\u3069\u306b\u3088\u308a\u9078\u629e\u3059\u308b\uff0e
\u6b21\u306b galene-stt \u3092\u30d3\u30eb\u30c9\u3057\u307e\u3059\uff0e
\n$ git clone https://github.com/jech/galene-stt\n$ cd galene-stt\n$ go build\n
\u3044\u304f\u3064\u304b\u30a8\u30e9\u30fc\u304c\u51fa\u307e\u3057\u305f\uff0e
\nopus \u30e9\u30a4\u30d6\u30e9\u30ea\u304c\u4e0d\u8db3\u3057\u3066\u3044\u305f\u306e\u3067 Debian \u30d1\u30c3\u30b1\u30fc\u30b8\u304b\u3089\u5c0e\u5165\u3057\u307e\u3057\u305f\uff0e
\n$ go build\n# gopkg.in/hraban/opus.v2\n# [pkg-config --cflags -- opus opus opus opus opusfile opusfile]\nPackage opusfile was not found in the pkg-config search path.\nPerhaps you should add the directory containing `opusfile.pc'\nto the PKG_CONFIG_PATH environment variable\nPackage 'opusfile', required by 'virtual:world', not found\nPackage 'opusfile', required by 'virtual:world', not found\n$ sudo apt install libopus-dev libopusfile-dev (1)\n
>Debian \u30d1\u30c3\u30b1\u30fc\u30b8\u304b\u3089\u5c0e\u5165
\nWhisper.cpp \u3092 build \u3057\u305f\u5f8c\u30b7\u30b9\u30c6\u30e0\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u3044\u306a\u304b\u3063\u305f\u306e\u3067\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u305f\uff0e
\n$ go build\n# galene-stt\n./whisper.go:13:10: fatal error: whisper.h: No such file or directory\n 13 | #include \"whisper.h\"\n\t | ^~~~~~~~~~~\ncompilation terminated.\n
build \u304c\u7d42\u308f\u3063\u305f\u306e\u3067\u5b9f\u884c\u3059\u308b\u3068 Whisper.cpp \u306e\u5171\u6709\u30e9\u30a4\u30d6\u30e9\u30ea\u304c\u898b\u3064\u304b\u3089\u305a\u52d5\u304d\u307e\u305b\u3093\u3067\u3057\u305f\uff0e
\n$ ./galene-stt https://127.0.0.1:8443/group/test/\n./galene-stt: error while loading shared libraries: libwhisper.so.1: cannot open shared object file: No such file or directory\n
Whisper.cpp \u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u306f /usr/local/lib \u306b\u5c0e\u5165\u3055\u308c\u3066\u3044\u308b\u306e\u3067 LD_LIBRARY_PATH \u3067\u6307\u5b9a\u3057\u3066\u307f\u308b\u3068\u52d5\u304d\u307e\u3057\u305f\uff0e
$ LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib ./galene-stt https://127.0.0.1:8443/group/test/\n
\u6bce\u56de\u6307\u5b9a\u3059\u308b\u306e\u306f\u9762\u5012\u306a\u306e\u3067\u30b7\u30b9\u30c6\u30e0\u306b\u8a2d\u5b9a\u3057\u307e\u3059\uff0e /etc/ld.so.conf \u306b\u30d1\u30b9\u3092\u8ffd\u8a18\u3057\u3066 ldconfig \u30b3\u30de\u30f3\u30c9\u3067\u53cd\u6620\u3057\u307e\u3059\uff0e
$ echo '/usr/local/lib' | sudo tee -a /etc/ld.so.conf (1)\n/usr/local/lib\n$ sudo ldconfig (2)\n$ sudo ldconfig -p | grep -i whisper (3)\n libwhisper.so.1 (libc6,x86-64) => /usr/local/lib/libwhisper.so.1\n libwhisper.so (libc6,x86-64) => /usr/local/lib/libwhisper.so\n
Whisper.cpp \u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u542b\u307e\u308c\u308b /usr/local/lib \u3092 /etc/ld.so.conf \u306b\u8ffd\u8a18
ldconfig \u30b3\u30de\u30f3\u30c9\u3067 /etc/ld.so.cache \u306b\u53cd\u6620
Whisper.cpp \u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u78ba\u8a8d
\nhelp \u306f\u3053\u3093\u306a\u611f\u3058\u3067\u3059\uff0e
\n$ ./galene-stt --help\nUsage: ./galene-stt group [file...]\n -debug\n enable protocol logging\n -discard-silence\n discard segments of silence early\n -insecure\n don't check server certificates\n -model filename\n whisper model filename (default \"models/ggml-small.bin\")\n -password password\n password to use for login\n -silence volume\n maximum volume required to start a new phrase (default 0.025)\n -silence-time seconds\n seconds of silence required to start a new phrase (default 0.3)\n -username username\n username to use for login (default \"speech-to-text\")\n
\u9069\u5f53\u306a Galene group \u306b\u63a5\u7d9a\u3057\u307e\u3059\uff0e
\n\u4eca\u56de\u306f\u30ed\u30fc\u30ab\u30eb\u3067\u8d77\u52d5\u3057\u305f Galene \u306e test group \u306b\u63a5\u7d9a\u3057\u307e\u3057\u305f\uff0e
$ ./galene-stt https://127.0.0.1:8443/group/test/\n2024/07/30 20:10:20 Get group status: Get \"https://127.0.0.1:8443/group/test/.status.json\": tls: failed to verify certificate: x509: cannot validate certificate for 127.0.0.1 because it doesn't contain any IP SANs\n
\u8a3c\u660e\u66f8\u304c\u3044\u308f\u3086\u308b\u30aa\u30ec\u30aa\u30ec\u8a3c\u660e\u66f8\u306a\u306e\u3067\u63a5\u7d9a\u306b\u5931\u6557\u3057\u307e\u3059\uff0e
\n-insecure \u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u4ed8\u3051\u3066\u8a3c\u660e\u66f8\u306e\u78ba\u8a8d\u3092\u3057\u306a\u3044\u3088\u3046\u306b\u3057\u307e\u3059\uff0e
\u3082\u3046\u4e00\u3064\uff0e\u898f\u5b9a\u5024\u306e\u30e2\u30c7\u30eb\u306f\u82f1\u8a9e\u5c02\u7528\u306e small.bin \u306a\u306e\u3067\u65e5\u672c\u8a9e\u3082\u5229\u7528\u3067\u304d\u308b\u304b\u3064\u3082\u3046\u5c11\u3057\u7cbe\u5ea6\u306e\u3044\u3044 base \u30e2\u30c7\u30eb\u3092\u6307\u5b9a\u3057\u307e\u3059\uff0e
$ ./galene-stt -insecure -model models/ggml-base.bin https://127.0.0.1:8443/group/test/\n
\u8a72\u5f53\u30b0\u30eb\u30fc\u30d7\u306b speech-to-text \u304c\u73fe\u308c\u307e\u3059\uff0e
\n\u3053\u306e\u72b6\u614b\u3067\u3057\u3083\u3079\u308b\u3068\u6587\u5b57\u8d77\u3053\u3057\u7d50\u679c\u304c\u30c6\u30ad\u30b9\u30c8\u30c1\u30e3\u30c3\u30c8\u306b\u6295\u7a3f\u3055\u308c\u3066\u3044\u304d\u307e\u3059\uff0e
\u3053\u3053\u3067\u554f\u984c\u304c\u767a\u751f\uff0e
\nWhisper.cpp \u306e\u82f1\u8a9e\u3078\u306e\u7ffb\u8a33\u304c\u6709\u52b9\u306b\u306a\u3063\u3066\u304a\u308a\u65e5\u672c\u8a9e\u3092\u6587\u5b57\u8d77\u3053\u3057\u3057\u3066\u3082\u82f1\u8a9e\u3067\u7d50\u679c\u304c\u6295\u7a3f\u3055\u308c\u3066\u3057\u307e\u3044\u307e\u3059\uff0e\u6050\u3089\u304f\u4ed6\u306e\u8a00\u8a9e\u3067\u3082\u540c\u3058\u3067\u3057\u3087\u3046\uff0e\u3053\u308c\u304c\u4fee\u6b63\u3055\u308c\u306a\u3044\u3068\u82f1\u8a9e\u4ee5\u5916\u306e\u74b0\u5883\u3067\u306f\u8f9b\u3044\u611f\u3058\uff0e
\n\u3068\u308a\u3042\u3048\u305a issue \u306b\u6295\u3052\u307e\u3057\u305f\uff0e
08-11 \u306e 622de1914d049ce403d4e51ec0f2df4fa365a42a \u3067 -lang \u3068 -translate \u304c\u8ffd\u52a0\u3055\u308c\u307e\u3057\u305f\uff0e
$ git log -1 622de1914d049ce403d4e51ec0f2df4fa365a42a\ncommit 622de1914d049ce403d4e51ec0f2df4fa365a42a\nAuthor: Juliusz Chroboczek <jch@irif.fr>\nDate: Sun Aug 11 00:33:02 2024 +0200\n\n Add flags -lang and -translate.\n
-lang language\n language of input, or \"auto\" for autodetection (default \"en\")\n -translate\n translate foreign languages\n
-lang ja \u3092\u4ed8\u3051\u308b\u3053\u3068\u3067\u65e5\u672c\u8a9e\u304c\u65e5\u672c\u8a9e\u3068\u3057\u3066\u51fa\u529b\u3055\u308c\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f :)
\n\u3057\u304b\u3057\uff0c base \u30e2\u30c7\u30eb\u3060\u3068\u3044\u307e\u3044\u3061\u306a\u6587\u5b57\u8d77\u3053\u3057\uff0c\u305d\u308c\u4ee5\u4e0a\u306e\u30e2\u30c7\u30eb\u3060\u3068cpu\u304c\u8db3\u3092\u5f15\u3063\u5f35\u3063\u3066\u8ffd\u3044\u3064\u304b\u306a\u3044\u611f\u3058\u3067\u3059\uff0eWhisper.cpp \u306f 4core \u3057\u304b\u4f7f\u3063\u3066\u304f\u308c\u306a\u3044\u3088\u3046\u306a\u306e\u3067\u305d\u308c\u3092\u3069\u3046\u306b\u304b\u3059\u308b\u304b\uff0cNVIDIA GPU \u3092\u4f7f\u308f\u306a\u3044\u3068\u30c0\u30e1\u305d\u3046\u3067\u3059\uff0e
$ git remote -v\norigin https://github.com/jech/galene-stt (fetch)\norigin https://github.com/jech/galene-stt (push)\n$ git log -1\ncommit ae763df9372405a85ed55a52f45f8ea32c74501f (HEAD -> master, origin/master, origin/HEAD)\nAuthor: Juliusz Chroboczek <jch@irif.fr>\nDate: Wed Jul 31 18:06:32 2024 +0200\n\n Rename drop-silence to discard-silence.\n$ git remote -v\norigin https://github.com/ggerganov/whisper.cpp.git (fetch)\norigin https://github.com/ggerganov/whisper.cpp.git (push)\n$ git log -1\ncommit 6739eb83c3ca5cf40d24c6fe8442a761a1eb6248 (HEAD -> master, origin/master, origin/HEAD)\nAuthor: Georgi Gerganov <ggerganov@gmail.com>\nDate: Sat Jul 27 20:35:04 2024 +0300\n\n whisper : handle empty mel (#2324)\n$ dpkg-query -W golang cmake build-essential\nbuild-essential 12.10\ncmake 3.30.2-1\ngolang:amd64 2:1.22~3\n$ lsb_release -dr\nDescription: Debian GNU/Linux trixie/sid\nRelease: n/a\n$ arch\nx86_64\n$ cpu-info\nPackages:\n 0: Intel Core i7-10510U\nMicroarchitectures:\n 4x Sky Lake\nCores:\n 0: 2 processors (0-1), Intel Sky Lake\n 1: 2 processors (2-3), Intel Sky Lake\n 2: 2 processors (4-5), Intel Sky Lake\n 3: 2 processors (6-7), Intel Sky Lake\nLogical processors (System ID):\n 0 (0): APIC ID 0x00000000\n 1 (4): APIC ID 0x00000001\n 2 (1): APIC ID 0x00000002\n 3 (5): APIC ID 0x00000003\n 4 (2): APIC ID 0x00000004\n 5 (6): APIC ID 0x00000005\n 6 (3): APIC ID 0x00000006\n 7 (7): APIC ID 0x00000007\n$ grep ^MemTotal: /proc/meminfo\nMemTotal: 15986772 kB\n
\u5c0f\u3055\u306aLinux\u4e92\u63db\u30ab\u30fc\u30cd\u30eb\u306eTilck\u3068\u3044\u3046\u3082\u306e\u3092\u77e5\u3063\u305f\u306e\u3067\u5c11\u3057\u89e6\u3063\u3066\u307f\u307e\u3057\u305f\uff0e\u305d\u306e\u5f8cWiki\u3092\u898b\u306a\u304c\u3089build_toolchain script \u3092\u5229\u7528\u3057\u3066\u3044\u304f\u3064\u304b\u306e\u30e6\u30fc\u30b6\u30b9\u30da\u30fc\u30b9\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\uff0e
\n\n
\u307e\u305a\u306f\u697d\u3057\u3052\u306afbDOOM\u3092\u5c0e\u5165
\n$ ./scripts/build_toolchain -s build_fbdoom\n$ ./scripts/cmake_run -DEXTRA_FBDOOM=1\n$ make rem\n
\u30de\u30a6\u30b9\u30c7\u30d0\u30a4\u30b9\u304c\u306a\u3044\u306e\u3067\u30ad\u30fc\u30dc\u30fc\u30c9\u3067\u306e\u64cd\u4f5c\u306e\u307f\u3067\u3059\u304c\u305d\u3053\u305d\u3053\u904a\u3079\u307e\u3059\uff0e
\n\u6b21\u306fFrameBuffer\u306e\u30a2\u30d7\u30ea\u3092
\n./scripts/build_toolchain -s build_tfblib\n$ ./scripts/cmake_run -DEXTRA_FBDOOM=1\n$ make rem\n
\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u304c\u4f7f\u3048\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\uff0e
\nfb_drawing fb_keyinput fb_text fbtest\nfb_hello_world fb_tetris\n
\u30de\u30f3\u30c7\u30eb\u30d6\u30ed\u96c6\u5408\u3044\u3044\u3067\u3059\u3088\u306d\uff0efb_drawing \u306e\u4e2d\u306b\u6709\u308a\u307e\u3059\uff0e
TinyCC \u3082\u4f7f\u3048\u307e\u3059\uff0e
\n$ ./scripts/build_toolchain -s tcc\n$ ./scripts/cmake_run -DEXTRA_TCC=1\n$ make rem\n
\u305f\u3060\u3057\uff0c\u73fe\u6642\u70b9\u3067\u306f\u9759\u7684\u30ea\u30f3\u30af\u304c\u5fc5\u9808\u3067\u3059\uff0e
\nroot@tilck:/# cat lib/tcc-examples/ex1.c\n#!/usr/local/bin/tcc -run\n#include <tcclib.h>\n\nint main()\n{\n printf(\"Hello World\\n\");\n return 0;\n}\nroot@tilck:/# tcc lib/tcc-examples/ex1.c -o ex1\nroot@tilck:/# ./ex1\nKilled\nroot@tilck:/# tcc -static lib/tcc-examples/ex1.c -o ex1\nroot@tilck:/# ./ex1\nHello World\n| \n Tip \n | \n\n \n \n\u3053\u3046\u3044\u3046\u64cd\u4f5c\u6642\u306fqemu\u306eGUI\u30b3\u30f3\u30bd\u30fc\u30eb\u3061\u3087\u3063\u3068\u4f7f\u3044\u3065\u3089\u3044\u306e\u3067 \n \n\n \n$ qemu-system-i386 -rtc base=localtime -device sb16 -drive id=img1,format=raw,if=none,file=/home/matoken/src/tilck/build/tilck.img -device ide-hd,drive=img1,cyls=74,heads=16,secs=63 -serial stdio\n | \n
\u4ed6\u306b\u3082\u3044\u304f\u3064\u304b\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u304c\u52d5\u304d\u307e\u3059\uff0eWIki\u3092\u30c1\u30a7\u30c3\u30af\u3057\u3066\u307f\u307e\u3057\u3087\u3046\uff0e
\nbuild_toolchain script \u306b\u8272\u3005\u52a0\u3048\u308b\u3068\u697d\u3057\u305d\u3046\u3067\u3059\uff0e
[ 0.111] Hello from Tilck 0.1.4, commit: 5835b80f\n[ 0.111] Build type: Debug, compiler: gcc 8.4.0\n[ 0.115] timer_hz: 250; time_slice: 40 ms; in_hypervisor: yes\n\n \u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2510 \u2592\u2592\u2510 \u2592\u2592\u2510 \u2592\u2592\u2592\u2592\u2592\u2592\u2510 \u2592\u2592\u2510 \u2592\u2592\u2510\n \u2514\u2500\u2500\u2592\u2592\u250c\u2500\u2500\u2518 \u2592\u2592\u2502 \u2592\u2592\u2502 \u2592\u2592\u250c\u2500\u2500\u2500\u2500\u2518 \u2592\u2592\u2502 \u2592\u2592\u250c\u2518\n \u2592\u2592\u2502 \u2592\u2592\u2502 \u2592\u2592\u2502 \u2592\u2592\u2502 \u2592\u2592\u2592\u2592\u2592\u250c\u2518\n \u2592\u2592\u2502 \u2592\u2592\u2502 \u2592\u2592\u2502 \u2592\u2592\u2502 \u2592\u2592\u250c\u2500\u2592\u2592\u2510\n \u2592\u2592\u2502 \u2592\u2592\u2502 \u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2510 \u2514\u2592\u2592\u2592\u2592\u2592\u2592\u2510 \u2592\u2592\u2502 \u2592\u2592\u2510\n \u2514\u2500\u2518 \u2514\u2500\u2518 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2514\u2500\u2500\u2500\u2500\u2500\u2518 \u2514\u2500\u2518 \u2514\u2500\u2518\n\n$ dpkg-query -W qemu-system-x86\nqemu-system-x86 1:7.2+dfsg-1+b2\n$ lsb_release -a\nNo LSB modules are available.\nDistributor ID: Debian\nDescription: Debian GNU/Linux bookworm/sid\nRelease: n/a\nCodename: bookworm\n$ arch\nx86_64\n
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
\n\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
\n\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
\nLichee 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
\n\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
\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\u5225\u306e\u3082\u306e\u306e\u307b\u3046\u304c\u3044\u3044\u304b\u3082\u3057\u308c\u306a\u3044)
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
\n\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
\n\u307e\u305a\u306f\u7c21\u5358\u305d\u3046\u306afortune\u3092\u8a66\u3057\u307e\u3059.
\n$ 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\nLichee 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
\n\u624b\u5143\u306eGNU sharutils 4.15.2\u306euudecode\u306b\u306fbase64\u3092\u4f7f\u3046 -m, --base64 \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
$ gzip -c fortune | uuencode fortune.gz > fortune.gz.uu\n$ cat fortune.gz.uu | xclip\n# cat | uudecode #\u3053\u3053\u3067\u30af\u30ea\u30c3\u30d7\u30dc\u30fc\u30c9\u304b\u3089\u8cbc\u308a\u4ed8\u3051\n# zcat fortune.gz > fortune\n# rm fortune.gz\n\u305d\u3057\u3066\u2026\u200b\u2026\u200b
\n# ./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 => not found (0x00000000)\nlibc.so.6 => /lib/libc.so.6 (0x00000000)\n/lib/ld-linux.so.3 => /lib/ld-linux.so.3 (0x00000000)\n\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
\n\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$ xz -c fortune | uuencode fortune.xz > fortune.xz.uu
-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\n\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
\nHello 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
\n$ cat hello.c\n#include <stdio.h>\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\n\u3067\u304b\u3044\u2026\u200b\u2026\u200b
\n\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
\n\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
\ncrossbuild-essential-<arch> \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
$ 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\n\u6ca2\u5c71\u3042\u308a\u307e\u3059\uff0e\u4eca\u56de\u306farmlf/armhf\u306e crossbuild-essential-armel, crossbuild-essential-armhf \u3092\u5c0e\u5165\u3057\u307e\u3057\u305f\uff0e
$ sudo apt install crossbuild-essential-armel crossbuild-essential-armhf\ngcc\u3060\u3051\u3067\u3044\u3044\u5834\u5408\u306farmlf\u306f gcc-arm-linux-gnueabi\uff0carmhf\u306f gcc-arm-linux-gnueabihf \u3060\u3051\u3067OK\u3067\u3059\uff0e
\u307e\u305a\u306f arm-linux-gnueabihf-gcc \u3092\u4f7f\u3063\u3066armhf\u306e\u30d0\u30a4\u30ca\u30ea\u3092\u4f5c\u308a\u307e\u3059\uff0e
$ /usr/bin/arm-linux-gnueabihf-gcc -static ./hello.c\n$ strip a.out\n$ xz -c a.out | uuencode a.out.xz > a.out.xz.uu\narmhf\u306f\u99c4\u76ee\u305d\u3046\u3067\u3059\uff0e
\n# cat | uudecode\n^d\n# xzcat ./a.out.xz > ./a.out\n# chmod +x ./a.out\n# ./a.out\nSegmentation fault\n\u6b21\u306f gcc-arm-linux-gnueabi \u3067armlf\u306e\u30d0\u30a4\u30ca\u30ea\u3092\u4f5c\u3063\u3066\u8a66\u3059\u3068\u52d5\u304d\u307e\u3057\u305f\uff0e
$ /usr/bin/arm-linux-gnueabi-gcc -static ./hello.c\n$ strip a.out\n$ xz -c a.out | uuencode a.out.xz > a.out.xz.uu\n# cat | uudecode\n^d\n# xzcat ./a.out.xz > ./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\n\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
\n\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?
\n\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
\n