{"version":"https:\/\/jsonfeed.org\/version\/1","title":"My Feed Title","home_page_url":"https:\/\/tm23forest.com\/contents","feed_url":"https:\/\/tm23forest.com\/contents.json","description":"TM23FOREST.COM ","author":{"name":"Tosh Morry"},"items":[{"title":"Linux\u306eSystemCall\u756a\u53f7\u4e00\u89a7","date_published":"2026-01-25T20:54:00+09:00","id":"https:\/\/tm23forest.com\/contents\/linux-systemcall-numbers","url":"https:\/\/tm23forest.com\/contents\/linux-systemcall-numbers","content_html":"<p>Linux&#12398;System Call&#30058;&#21495;&#19968;&#35239;&#12434;<a href=\"https:\/\/elixir.bootlin.com\/linux\/v5.15.197\/source\/include\/uapi\/asm-generic\/unistd.h\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">unistd.h<\/a>&#12363;&#12425;&#25277;&#20986;&#12375;&#12383;&#12290;&#21517;&#31216;&#12399;<code>www.man7.org<\/code>&#12408;&#12398;&#12522;&#12531;&#12463;&#12392;&#12394;&#12387;&#12390;&#12356;&#12427;&#12290;<\/p>\n\n<h2>System Call&#30058;&#21495;&#19968;&#35239;<\/h2>\n<div class=\"table\">\n<table>\n<thead>\n<tr>\n<th style=\"text-align: right;\">Number<\/th>\n<th style=\"text-align: center;\">System call<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: right;\">0<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/io_setup.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">io_setup<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">1<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/io_destroy.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">io_destroy<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">2<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/io_submit.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">io_submit<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">3<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/io_cancel.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">io_cancel<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">4<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/io_getevents.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">io_getevents<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">5<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/setxattr.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">setxattr<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">6<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/lsetxattr.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">lsetxattr<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">7<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/fsetxattr.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">fsetxattr<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">8<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/getxattr.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">getxattr<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">9<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/lgetxattr.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">lgetxattr<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">10<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/fgetxattr.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">fgetxattr<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">11<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/listxattr.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">listxattr<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">12<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/llistxattr.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">llistxattr<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">13<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/flistxattr.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">flistxattr<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">14<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/removexattr.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">removexattr<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">15<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/lremovexattr.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">lremovexattr<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">16<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/fremovexattr.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">fremovexattr<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">17<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/getcwd.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">getcwd<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">18<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/lookup_dcookie.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">lookup_dcookie<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">19<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/eventfd2.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">eventfd2<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">20<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/epoll_create1.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">epoll_create1<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">21<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/epoll_ctl.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">epoll_ctl<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">22<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/epoll_pwait.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">epoll_pwait<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">23<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/dup.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">dup<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">24<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/dup3.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">dup3<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">26<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/inotify_init1.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">inotify_init1<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">27<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/inotify_add_watch.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">inotify_add_watch<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">28<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/inotify_rm_watch.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">inotify_rm_watch<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">29<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/ioctl.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">ioctl<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">30<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/ioprio_set.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">ioprio_set<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">31<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/ioprio_get.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">ioprio_get<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">32<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/flock.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">flock<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">33<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/mknodat.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">mknodat<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">34<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/mkdirat.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">mkdirat<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">35<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/unlinkat.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">unlinkat<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">36<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/symlinkat.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">symlinkat<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">37<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/linkat.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">linkat<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">38<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/renameat.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">renameat<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">39<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/umount2.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">umount2<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">40<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/mount.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">mount<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">41<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/pivot_root.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">pivot_root<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">42<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/nfsservctl.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">nfsservctl<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">47<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/fallocate.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">fallocate<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">48<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/faccessat.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">faccessat<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">49<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/chdir.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">chdir<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">50<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/fchdir.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">fchdir<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">51<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/chroot.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">chroot<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">52<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/fchmod.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">fchmod<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">53<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/fchmodat.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">fchmodat<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">54<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/fchownat.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">fchownat<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">55<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/fchown.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">fchown<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">56<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/openat.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">openat<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">57<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/close.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">close<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">58<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/vhangup.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">vhangup<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">59<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/pipe2.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">pipe2<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">60<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/quotactl.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">quotactl<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">61<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/getdents64.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">getdents64<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">63<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/read.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">read<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">64<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/write.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">write<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">65<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/readv.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">readv<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">66<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/writev.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">writev<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">67<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/pread64.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">pread64<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">68<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/pwrite64.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">pwrite64<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">69<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/preadv.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">preadv<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">70<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/pwritev.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">pwritev<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">72<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/pselect6.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">pselect6<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">73<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/ppoll.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">ppoll<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">74<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/signalfd4.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">signalfd4<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">75<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/vmsplice.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">vmsplice<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">76<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/splice.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">splice<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">77<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/tee.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">tee<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">78<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/readlinkat.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">readlinkat<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">81<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/sync.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">sync<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">82<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/fsync.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">fsync<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">83<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/fdatasync.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">fdatasync<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">84<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/sync_file_range2.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">sync_file_range2<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">84<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/sync_file_range.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">sync_file_range<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">85<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/timerfd_create.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">timerfd_create<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">86<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/timerfd_settime.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">timerfd_settime<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">87<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/timerfd_gettime.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">timerfd_gettime<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">88<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/utimensat.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">utimensat<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">89<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/acct.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">acct<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">90<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/capget.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">capget<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">91<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/capset.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">capset<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">92<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/personality.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">personality<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">93<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/exit.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">exit<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">94<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/exit_group.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">exit_group<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">95<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/waitid.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">waitid<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">96<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/set_tid_address.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">set_tid_address<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">97<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/unshare.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">unshare<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">98<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/futex.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">futex<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">99<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/set_robust_list.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">set_robust_list<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">100<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/get_robust_list.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">get_robust_list<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">101<\/td>\n<td style=\"text-align: center;\"><a href=\"https:\/\/www.man7.org\/linux\/man-pages\/man2\/nanosleep.2.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">nanosleep<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: right;\">102...<\/td><\/tr><\/tbody><\/table><\/div>","tags":["Linux"]},{"title":"ALSA subdevice from tinyalsa utilities","date_published":"2026-01-04T22:05:00+09:00","id":"https:\/\/tm23forest.com\/contents\/alsa-subdevice-from-tinyalsa-utilities","url":"https:\/\/tm23forest.com\/contents\/alsa-subdevice-from-tinyalsa-utilities","content_html":"<p>As noted on <a href=\"\/contents\/virtio-sound-multi-stream-configuration-testing-on-qemu\">my previous post<\/a>, tinyalsa code is not capable to playback\/capture stream from designated subdevice. Fortunately, tinyalsa source code is easy to extend so that implementing subdevice option is straight forward.<\/p>\n\n<h2>Basics<\/h2>\n<p>In tinyalsa API, <code>pcm_open<\/code> is used instead of <code>snd_pcm_open<\/code>. To designate subdevice, consumer process need to call certain ioctl to <code>\/dev\/snd\/controlC%u<\/code> before calling <code>pcm_open<\/code>. This is minimal code snipped to demonstrate it.<\/p>\n<pre><code class=\"language-c\">#include &lt;unistd.h&gt;   \/* close *\/\n#include &lt;fcntl.h&gt;      \/* open *\/\n#include &lt;sys\/ioctl.h&gt;  \/* ioctl *\/\n#include &lt;sound\/asound.h&gt;  \/* SNDRV_CTL_IOCTL_PCM_PREFER_SUBDEVICE *\/\n\nstruct pcm *pcm_open_with_subdevice(unsigned int card, unsigned int device,\n                            unsigned int subdevice, unsigned int flags, struct pcm_config *config)\n{\n    char fn[256];\n    int fd;\n\n    snprintf(fn, sizeof(fn), \"\/dev\/snd\/controlC%u\", card);\n    fd = open(fn, 0);\n    if (fd &lt; 0) {\n        fprintf(stderr, \"failed to open %s\\n\", fn);\n        return NULL;\n    }\n\n    if (ioctl(fd, SNDRV_CTL_IOCTL_PCM_PREFER_SUBDEVICE, &amp;subdevice) &lt; 0) {\n        fprintf(stderr, \"failed to set subdevice %u\\n\", subdevice);\n        close(fd);\n        return NULL;\n    }\n\n    pcm = pcm_open(card, device, flags, config);\n\n    return pcm;\n}<\/code><\/pre>\n<p>Note that, if unexisting subdevice is passed to this implementation, this program goes into infinite loop. By default, ALSA kernel side will wait until subdevice become available: <a href=\"https:\/\/elixir.bootlin.com\/linux\/v5.15.197\/source\/sound\/core\/pcm_native.c#L2848\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">pcm_native.c:2848<\/a>. To avoid this behavior, adding <code>PCM_NONBLOCK<\/code> to pcm_open flags argument enable...<\/p>","tags":["ALSA"]},{"title":"Virtio Sound multi-stream configuration\/testing on QEMU","date_published":"2026-01-03T23:12:00+09:00","id":"https:\/\/tm23forest.com\/contents\/virtio-sound-multi-stream-configuration-testing-on-qemu","url":"https:\/\/tm23forest.com\/contents\/virtio-sound-multi-stream-configuration-testing-on-qemu","content_html":"<p>Virtio Sound is a paravirtualized sound device to access sound device from virtual machine. Unlike other virtual sound device among QEMU implementations, Virtio Sound doesn't assume any physical sound device to derive the virtual device behavior. Instead, Virtio Sound relays on VIRTIO specification to define device behavior so that virtual machine can exchange sound data without any restriction coming from physical device in general. One such example is the number of streams per single sound device. This article demonstrate how the number of streams is configured on QEMU and how it is tested from virtual machie side.<\/p>\n\n<h2>Prerequisite<\/h2>\n<ul>\n<li>Linux kernel 5.15 with CONFIG_SND_VIRTIO<\/li>\n<li>YoctoLinux 5.0.14 guest root filesystem localbuild.<\/li>\n<li>QEMU 10.2.0 localbuild.<\/li>\n<\/ul>\n<h2>Launching QEMU with virtio-snd configuration<\/h2>\n<p>qemu configuration of virtio-snd is described on <a href=\"https:\/\/www.qemu.eu\/doc\/latest\/system\/devices\/virtio\/virtio-snd.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">official documentation<\/a>. While VIRTIO specification doesn't have limit of the number of streams, QEMU implementation define its own limit of streams. <a href=\"https:\/\/gitlab.com\/qemu-project\/qemu\/-\/blob\/v10.2.0\/hw\/audio\/virtio-snd.c?ref_type=tags#L1042\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">virtio-snd.c:1024<\/a> shows that 10 streams per single device is maximum.<\/p>\n<pre><code class=\"language-nohighlight\">-audiodev pipewire,id=audio-main \\\n-device virtio-sound-pci,audiodev=audio-main,streams=10 \\<\/code><\/pre>\n<p>Using this launch time QEMU configuration, stream_id is ranging from 0 to 9. stream_id 0-4 is configured to VIRTIO_SND_D_OUTPUT, 5-9 is configured to VIRTIO_SND_D_INPUT as we can see at <a href=\"https:\/\/gitlab.com\/qemu-project\/qemu\/-\/blob\/v10.2.0\/hw\/audio\/virtio-snd.c?ref_type=tags#L445\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">virtio-snd.c445<\/a>. VIRTIO_SND_D_OUTPUT\/VIRTIO_SND_D_INPUT is also called as PLAYBACK\/CAPTURE in...<\/p>","tags":["Linux","QEMU"]},{"title":"Android surfaceflinger RenderEngine explained","date_published":"2025-07-28T23:28:00+09:00","id":"https:\/\/tm23forest.com\/contents\/android-surfaceflinger-renderengine-explained","url":"https:\/\/tm23forest.com\/contents\/android-surfaceflinger-renderengine-explained","content_html":"<p>SurfaceFlinger uses RenderEngine to compose client buffers. RenderEngine abstracts several drawing libraries and provides interface function <code>drawLayers()<\/code>. There are four types of RenderEngine defined on AOSP.<\/p>\n<ul>\n<li><code>THREADED<\/code><\/li>\n<li><code>SKIA_GL<\/code><\/li>\n<li><code>SKIA_GL_THREADED<\/code><\/li>\n<li><code>GLES<\/code><\/li>\n<\/ul>\n\n<p>On Android13, <code>`SKIA_GL_THREADED<\/code> is used by default. This choice can be override by <code>debug.renderengine.backend<\/code> property.<\/p>\n<div  class=\"table\">\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Type<\/th>\n<th style=\"text-align: center;\">debug.renderengine.backend<\/th>\n<th style=\"text-align: left;\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\">THREADED<\/td>\n<td style=\"text-align: center;\">\"threaded\"<\/td>\n<td style=\"text-align: left;\">Threaded RenderEngine with GLES Backend<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">SKIA_GL<\/td>\n<td style=\"text-align: center;\">\"skiagl\"<\/td>\n<td style=\"text-align: left;\">RenderEngine with SkiaGL Backend<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">SKIA_GL_THREADED<\/td>\n<td style=\"text-align: center;\">\"skiaglthreaded\"<\/td>\n<td style=\"text-align: left;\">Threaded RenderEngine with SkiaGL Backend<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">GLES<\/td>\n<td style=\"text-align: center;\">\"gles\"<\/td>\n<td style=\"text-align: left;\">RenderEngine with GLES Backend<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>Two series of graphics API (GLES\/SkiaGL) are wrapped by threaded version and normal version. Threaded variant for each graphics API just offload the processing of <code>drawLayers()<\/code> into separated thread so that caller of RenderEngine (SurfaceFlinger) will not be blocked. Details of GLES\/Skia is written on official website:<\/p>\n<ul>\n<li><a href=\"https:\/\/skia.org\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">https:\/\/skia.org\/<\/a><\/li>\n<li><a href=\"https:\/\/www.khronos.org\/opengles\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">https:\/\/www.khronos.org\/opengles\/<\/a><\/li>\n<\/ul>\n<h2>benchmark<\/h2>\n<p>AOSP implements composition benchmark. Now it is only for <code>skiaglthreaded<\/code>.<\/p>\n<pre><code>PRODUCT_PACKAGES += \"librenderengine_bench\"<\/code><\/pre>\n<p>will install <code>\/data\/benchmarktest64\/librenderengine_bench\/librenderengine_bench<\/code> into target.<\/p>\n<h2>Reference<\/h2>\n<ul>\n<li><a href=\"https:\/\/android.googlesource.com\/platform\/frameworks\/native\/+\/refs\/tags\/android-13.0.0_r84\/services\/surfaceflinger\/SurfaceFlinger.cpp#748\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">https:\/\/android.googlesource.com\/platform\/frameworks\/native\/+\/refs\/tags\/android-13.0.0_r84\/services\/surfaceflinger\/SurfaceFlinger.cpp#748<\/a><\/li>\n<li><a href=\"https:\/\/android.googlesource.com\/platform\/frameworks\/native\/+\/refs\/tags\/android-13.0.0_r84\/libs\/renderengine\/RenderEngine.cpp#29\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">https:\/\/android.googlesource.com\/platform\/frameworks\/native\/+\/refs\/tags\/android-13.0.0_r84\/libs\/renderengine\/RenderEngine.cpp#29<\/a><\/li>\n<\/ul>"},{"title":"Ubuntu24.04: vscode-server glibc prerequisites Error in July 2025","date_published":"2025-07-13T20:24:00+09:00","id":"https:\/\/tm23forest.com\/contents\/ubuntu24-04-vscode-server-glibc-prerequisites-error-in-july-2025","url":"https:\/\/tm23forest.com\/contents\/ubuntu24-04-vscode-server-glibc-prerequisites-error-in-july-2025","content_html":"<p>After automatic updating to following VSCode version, vscode-server RemoteSSH connection fails. Error description says that GLIBC version of Ubuntu24.04 dosen't satisfiy prerequisite of vscode-server running machine but it's not case. At first, I tried installing <code>musl<\/code> package from apt command but it didn't help because another linker error ocuured after installing <code>musl<\/code>.<\/p>\n\n<h2>Issue<\/h2>\n<p>After automatic updating to following VSCode version, vscode-server RemoteSSH from Windows machine to Ubuntu24.04 machine fails.<\/p>\n<pre><code class=\"language-nohighlight\">Version: 1.102.0 (user setup)\nCommit: cb0c47c0cfaad0757385834bd89d410c78a856c0\nDate: 2025-07-09T22:10:34.600Z\nElectron: 35.6.0\nElectronBuildId: 11847422\nChromium: 134.0.6998.205\nNode.js: 22.15.1\nV8: 13.4.114.21-electron.0\nOS: Windows_NT x64 10.0.26100<\/code><\/pre>\n<p>Error is due to glibc version.<\/p>\n<pre><code class=\"language-nohighlight\">[08:06:44.956] &gt; sh: 418: kill: Exec server process not found\n&gt; No such process[2025-07-13 08:06:44] error This machine does not meet Visual Studio Code Server's prerequisites, expected either...\n&gt;   - validate GLIBCXX version for GNU environments, but could not: No such file or directory (os error 2)\n&gt;   - find \/lib\/ld-musl-x86_64.so.1, which is required to run the Visual Studio Code Server in musl environments<\/code><\/pre>\n<h2>Resolution<\/h2>\n<p>Newly installing <code>nodejs<\/code> recover RemoteSSH connection to Ubuntu24.04 machine. Surprisingly, RemoteSSH connection keep successful after removing <code>nodejs<\/code>.<\/p>\n<pre><code class=\"language-bash\">sudo apt install nodejs -y\nsudo apt remove nodejs\nsudo apt autoremove -y<\/code><\/pre>\n<p>For reference, <code>apt install musl<\/code> also...<\/p>","tags":["Linux","VSCode"]},{"title":"Android13\/Ubuntu AOSP &quot;libncurses.so.5: cannot open shared object file&quot;","date_published":"2025-07-13T08:18:00+09:00","id":"https:\/\/tm23forest.com\/contents\/android13-aosp-libncurses-so-5-cannot-open-shared-object-file","url":"https:\/\/tm23forest.com\/contents\/android13-aosp-libncurses-so-5-cannot-open-shared-object-file","content_html":"<p>When I built AOSP android-13.0.0_r80 on Ubuntu machine as usual, \"libncurses.so.5: cannot open shared object file\" stopped build at the beginning of build.<\/p>\n<p>=== <\/p>\n<pre><code>repo init -u https:\/\/android.googlesource.com\/platform\/manifest -b android-13.0.0_r84\nrepo sync\nsource build\/envsetup.sh\nlunch sdk_car_x86_64-userdebug\nm<\/code><\/pre>\n<h2>Error<\/h2>\n<pre><code>FAILED: out\/target\/product\/emulator_car_x86_64\/obj\/RENDERSCRIPT_BITCODE\/libclcore.bc_intermediates\/rs_core.bc\n\/bin\/bash -c \"PWD=\/proc\/self\/cwd prebuilts\/clang\/host\/linux-x86\/clang-3289846\/bin\/clang -Iframeworks\/rs\/script_api\/include -Iexternal\/clang\/lib\/Headers -MD -DRS_VERSION=24 -std=c99 -c -O3 -\nfno-builtin -emit-llvm -target renderscript64-linux-android -fsigned-char -D__x86_64__ -Wno-deprecated -Werror  -Werror -Wall -Wextra -Iframeworks\/rs\/cpu_ref -DRS_DECLARE_EXPIRED_APIS  -x r\nenderscript frameworks\/rs\/driver\/runtime\/rs_core.c -o out\/target\/product\/emulator_car_x86_64\/obj\/RENDERSCRIPT_BITCODE\/libclcore.bc_intermediates\/rs_core.bc\"\nprebuilts\/clang\/host\/linux-x86\/clang-3289846\/bin\/clang.real: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory\n\nFAILED: out\/target\/product\/emulator_car_x86_64\/obj\/RENDERSCRIPT_BITCODE\/libclcore.bc_intermediates\/rs_allocation.bc                                                                          \/bin\/bash -c \"PWD=\/proc\/self\/cwd prebuilts\/clang\/host\/linux-x86\/clang-3289846\/bin\/clang -Iframeworks\/rs\/script_api\/include -Iexternal\/clang\/lib\/Headers -MD -DRS_VERSION=24 -std=c99 -c -O3 -\nfno-builtin -emit-llvm -target renderscript64-linux-android -fsigned-char -D__x86_64__ -Wno-deprecated -Werror  -Werror -Wall -Wextra -Iframeworks\/rs\/cpu_ref -DRS_DECLARE_EXPIRED_APIS  -x renderscript frameworks\/rs\/driver\/runtime\/rs_allocation.c -o out\/target\/product\/emulator_car_x86_64\/obj\/RENDERSCRIPT_BITCODE\/libclcore.bc_intermediates\/rs_allocation.bc\"\nprebuilts\/clang\/host\/linux-x86\/clang-3289846\/bin\/clang.real: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory<\/code><\/pre>\n<h2>Resolution<\/h2>\n<p>Run following on Ubuntu machine.<\/p>\n<pre><code>sudo ln -s libncurses.so.6 \/usr\/lib\/x86_64-linux-gnu\/libncurses.so.5\nsudo ln -s libtinfo.so.6 \/usr\/lib\/x86_64-linux-gnu\/libtinfo.so.5<\/code><\/pre>\n<p>Verification is done on following Docker image to avoid contaminating native Ubuntu OS.<\/p>\n<pre><code>FROM ubuntu:20.04\n\nRUN apt update &amp;&amp; apt install -y tzdata\n\n# https:\/\/source.android.com\/docs\/setup\/start\/requirements\nRUN apt update &amp;&amp; apt install -y  \\\n    git-core \\\n    gnupg \\\n    flex \\\n    bison \\\n    build-essential \\\n    zip \\\n    curl \\...<\/code><\/pre>","tags":["Android"]},{"title":"VkCube\u306eapk\u3092\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u304b\u3089\u30d3\u30eb\u30c9\u3059\u308b\u65b9\u6cd5","date_published":"2025-05-25T00:34:00+09:00","id":"https:\/\/tm23forest.com\/contents\/how-to-build-vkcube-apk","url":"https:\/\/tm23forest.com\/contents\/how-to-build-vkcube-apk","content_html":"<p>VkCube&#12399;<a href=\"https:\/\/github.com\/KhronosGroup\/Vulkan-Tools\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Vulkan-Tools<\/a>&#12398;github&#12391;&#12477;&#12540;&#12473;&#12467;&#12540;&#12489;&#12364;&#20844;&#38283;&#12373;&#12428;&#12390;&#12362;&#12426;&#35504;&#12391;&#12418;&#12499;&#12523;&#12489;&#65288;&#12467;&#12531;&#12497;&#12452;&#12523;&#65289;&#12375;&#12390;&#25163;&#20803;&#12391;&#21205;&#12363;&#12379;&#12427;&#12290;Android&#12391;&#12418;apk&#12434;&#20316;&#25104;&#12377;&#12427;&#25163;&#38918;&#12364;&#29694;&#22312;&#12469;&#12509;&#12540;&#12488;&#12373;&#12428;&#12390;&#12356;&#12427;&#12383;&#12417;&#31777;&#21336;&#12395;&#23455;&#34892;&#12391;&#12365;&#12427;&#12290;<\/p>\n\n<p><img decoding=\"async\" width=\"800\" alt=\"Ubutntu24.04&#19978;Android emulator&#12391;&#12499;&#12523;&#12489;&#12375;&#12383;VkCube&#23455;&#34892;&#12375;&#12390;&#12356;&#12427;&#30011;&#38754;\" class=\"img-responsive\" src=\"\/images\/v\/k\/c\/u\/b\/vkcube-android-apk-64c0f4d3.png\"><\/p>\n<h2>Android&#12450;&#12503;&#12522;(apk)&#12499;&#12523;&#12489;<\/h2>\n<p>&#12499;&#12523;&#12489;&#12395;&#20351;&#12358;&#12398;&#12399;Windows&#12391;&#12399;&#12394;&#12367;Linux&#12487;&#12473;&#12463;&#12488;&#12483;&#12503;&#12434;&#24819;&#23450;&#12375;&#12414;&#12377;&#12290;&#30906;&#35469;&#12391;&#12365;&#12390;&#12356;&#12427;&#12398;&#12399;Ubuntu24.04&#12391;&#12377;&#12290;&#26368;&#21021;&#12395;&#24517;&#35201;&#12394;&#12503;&#12525;&#12464;&#12521;&#12512;&#12434;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12375;&#12414;&#12377;&#12290;<code>openjdk-17-jdk<\/code>&#12399;Android SDK&#12434;&#20351;&#12358;&#12383;&#12417;&#12395;&#24517;&#35201;&#12290;<code>build-essential<\/code>&#12399;&#24517;&#35201;&#12394;&#12356;&#12290;Docker&#12395;&#24931;&#12428;&#12390;&#12356;&#12427;&#35501;&#32773;&#12399;&#26368;&#24460;&#12395;Dockerfile&#32076;&#30001;&#12391;&#19968;&#27671;&#12395;&#23455;&#34892;&#12377;&#12427;&#26041;&#27861;&#12395;&#12472;&#12515;&#12531;&#12503;&#12377;&#12427;&#12371;&#12392;&#12434;&#12362;&#21223;&#12417;&#12375;&#12414;&#12377;&#12290;<\/p>\n<pre><code class=\"language-bash\">sudo apt install -y \\\n    git \\\n    cmake \\\n    ninja-build \\\n    wget \\\n    unzip \\\n    pkgconf \\\n    openjdk-17-jdk<\/code><\/pre>\n<p>Android SDK&#12434;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12539;&#35373;&#23450;&#12377;&#12427;&#12290;<a href=\"https:\/\/developer.android.com\/studio\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">&#20844;&#24335;&#12469;&#12452;&#12488;<\/a>&#12363;&#12425;&#12300;&#12467;&#12510;&#12531;&#12489;&#12521;&#12452;&#12531;&#12484;&#12540;&#12523;&#12398;&#12415;&#12301;&#12434;&#36984;&#25246;&#12375;&#12289;&#21033;&#29992;&#35215;&#32004;&#12395;&#21516;&#24847;&#12375;&#12383;&#12425;&#12522;&#12531;&#12463;&#12434;&#21462;&#24471;&#12375;&#12390;<code>wget<\/code>&#12391;&#25351;&#23450;&#12377;&#12427;&#12290;<\/p>\n<pre><code class=\"language-bash\">wget https:\/\/dl.google.com\/android\/repository\/commandlinetools-linux-13114758_latest.zip\nunzip commandlinetools-linux-13114758_latest.zip &amp;&amp; cd cmdline-tools\nmkdir -p $HOME\/android-sdk\/cmdline-tools\/latest &amp;&amp; \\\ncp -r * $HOME\/android-sdk\/cmdline-tools\/latest\/<\/code><\/pre>\n<p>&#12371;&#12398;&#20363;&#12391;&#12399;<code>$HOME\/android-sdk<\/code>&#12395;Android SDK&#12398;&#23455;&#24907;&#12434;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12375;&#12390;&#12356;&#12427;&#12364;&#12393;&#12371;&#12391;&#12418;&#12424;&#12356;&#12290;&#21475;&#36848;&#12377;&#12427;<code>Dockerfile<\/code>&#12395;&#12377;&#12409;&#12390;&#21508;&#25163;&#38918;&#12391;&#12399;<code>\/usr\/local\/android-sdk<\/code>&#12395;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12375;&#12390;&#12356;&#12427;&#12290;<\/p>\n<pre><code class=\"language-bash\">export ANDROID_HOME=$HOME\/android-sdk\nexport ANDROID_SDK_ROOT=$HOME\/android-sdk\nexport ANDROID_NDK_HOME=$HOME\/android-sdk\/ndk\/28.1.13356709\nexport PATH=$PATH:$HOME\/android-sdk\/cmdline-tools\/latest\/bin<\/code><\/pre>\n<p>&#12391;&#24517;&#35201;&#12394;&#29872;&#22659;&#22793;&#25968;&#12434;&#25351;&#23450;&#12375;&#12390;SDK&#12521;&#12452;&#12475;&#12531;&#12473;&#12395;&#21516;&#24847;&#12377;&#12427;&#12290;&#12377;&#12409;&#12390;<code>y<\/code>&#12391;&#21516;&#24847;&#12375;&#12390;&#12362;&#12367;&#24517;&#35201;&#12364;&#12354;&#12427;&#12290;<\/p>\n<pre><code class=\"language-bash\">sdkmanager --licenses<\/code><\/pre>\n<p>sdkmanager&#32076;&#30001;&#12391;&#24517;&#35201;&#12394;Android NDK&#12392;&#12499;&#12523;&#12489;&#12484;&#12540;&#12523;&#12434;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12377;&#12427;&#12290;<\/p>\n<pre><code class=\"language-bash\">sdkmanager \"ndk;28.1.13356709\"\nsdkmanager \"platforms;android-26\"\nsdkmanager \"build-tools;36.0.0\"<\/code><\/pre>\n<p>&#12475;&#12511;&#12467;&#12525;&#12531;&#20197;&#38477;&#12364;&#21029;&#12398;&#12467;&#12510;&#12531;&#12489;&#12398;&#25201;&#12356;&#12392;&#12394;&#12425;&#12394;&#12356;&#12383;&#12417;&#12395;&#12289;&#12371;&#12398;&#12467;&#12510;&#12531;&#12489;&#12391;&#12399;&#12480;&#12502;&#12523;&#12463;&#12457;&#12540;&#12486;&#12540;&#12471;&#12519;&#12531;&#12399;&#24517;&#38920;&#12391;&#12377;&#12290;&#12371;&#12428;&#12391;Android SDK&#12398;&#28310;&#20633;&#12399;&#23436;&#20102;&#12391;&#12377;&#12290;<\/p>\n<pre><code class=\"language-bash\">cd $HOME\ngit clone --depth 1 -b vulkan-sdk-1.4.313.0 https:\/\/github.com\/KhronosGroup\/Vulkan-Tools.git\ncd $HOME\/Vulkan-Tools\nPATH=\/usr\/local\/android-sdk\/build-tools\/36.0.0\/:$PATH .\/scripts\/android.py --apk<\/code><\/pre>\n<p>&#12499;&#12523;&#12489;&#12364;&#25104;&#21151;&#12377;&#12427;&#12392;&#19979;&#35352;&#12398;&#22580;&#25152;&#12395;<code>VkCube.apk<\/code>&#12501;&#12449;&#12452;&#12523;&#12364;&#20316;&#25104;&#12373;&#12428;&#12390;&#12356;&#12414;&#12377;&#12290;&#26222;&#36890;&#12398;Android&#12450;&#12503;&#12522;&#12392;&#12375;&#12390;&#12456;&#12511;&#12517;&#12524;&#12540;&#12479;&#12414;&#12383;&#12399;Android&#12473;&#12510;&#12507;&#12395;&#20837;&#12428;&#12390;&#21205;&#20316;&#12373;&#12379;&#12427;&#12371;&#12392;&#12364;&#12391;&#12365;&#12414;&#12377;&#12290;apk&#12398;&#12469;&#12452;&#12474;&#12399;3MB&#12411;&#12393;&#12391;&#12377;&#12290;<\/p>\n<pre><code>ls -lh $HOME\/Vulkan-Tools\/build-android\/bin\/VkCube.apk\n-rw-r--r-- 1 user user 2.9M May 24 14:39 \/tmp\/Vulkan-Tools\/build-android\/bin\/VkCube.apk<\/code><\/pre>\n<h2>Android&#12450;&#12503;&#12522; (apk) Docker&#12452;&#12513;&#12540;&#12472;<\/h2>\n<p>Docker&#12395;&#24931;&#12428;&#12390;&#12356;&#12427;&#38283;&#30330;&#32773;&#12399;&#19979;&#35352;&#12501;&#12449;&#12452;&#12523;&#12434;&#12467;&#12500;&#12540;&#12375;&#12289;Docker&#12452;&#12513;&#12540;&#12472;&#12363;&#12425;apk&#12501;&#12449;&#12452;&#12523;&#12434;&#21462;&#20986;&#12377;&#12398;&#12364;&#31777;&#21336;&#12391;&#12377;&#12290;&#23455;&#38555;&#12289;&#19978;&#35352;&#12398;&#25163;&#38918;&#12399;&#12371;&#12398;&#26041;&#27861;&#12391;Ubuntu24.04&#12434;&#12505;&#12540;&#12473;&#12392;&#12375;&#12383;&#12392;&#12365;&#12395;&#24517;&#35201;&#12394;&#12497;&#12483;&#12465;&#12540;&#12472;&#12398;&#28431;&#12428;&#12364;&#12394;&#12356;&#12371;&#12392;&#12434;&#26908;&#35388;&#12375;&#12390;&#12356;&#12414;&#12377;&#12290;<\/p>\n<pre><code class=\"language-nohighlight\">FROM ubuntu:24.04\n\nRUN apt update &amp;&amp; apt install -y tzdata\n\nRUN apt update &amp;&amp; apt install -y \\\n    git \\\n    cmake \\\n    ninja-build \\\n    wget \\\n    unzip \\\n    pkgconf\n\nRUN apt install -y openjdk-17-jdk\n\nRUN cd \/tmp &amp;&amp; \\\n    wget https:\/\/dl.google.com\/android\/repository\/commandlinetools-linux-13114758_latest.zip &amp;&amp; \\\n    unzip commandlinetools-linux-13114758_latest.zip &amp;&amp; cd cmdline-tools &amp;&amp; \\\n    mkdir -p \/usr\/local\/android-sdk\/cmdline-tools\/latest &amp;&amp; \\\n    cp -r * \/usr\/local\/android-sdk\/cmdline-tools\/latest\/\n\nENV ANDROID_HOME=\/usr\/local\/android-sdk\nENV ANDROID_SDK_ROOT=\/usr\/local\/android-sdk\nENV ANDROID_NDK_HOME=\/usr\/local\/android-sdk\/ndk\/28.1.13356709\nENV PATH=$PATH:\/usr\/local\/android-sdk\/cmdline-tools\/latest\/bin\n\nRUN yes | sdkmanager --licenses &amp;&amp; \\\n    sdkmanager \"ndk;28.1.13356709\" \"platforms;android-26\" \"build-tools;36.0.0\"\n\nRUN apt install -y ninja-build\n\nRUN git clone...<\/code><\/pre>","tags":["Android","Vulkan"],"image":"\/user\/pages\/contents\/193.how-to-build-vkcube-apk\/vkcube-android-apk.png"},{"title":"git-bash\u30d7\u30ed\u30f3\u30d7\u30c8\u3092\u8a2d\u5b9a\u3059\u308b","date_published":"2025-05-18T21:25:00+09:00","id":"https:\/\/tm23forest.com\/contents\/git-bash-prompt-config","url":"https:\/\/tm23forest.com\/contents\/git-bash-prompt-config","content_html":"<p>\u4e0b\u8a18\u3092<code>.bashrc<\/code>\u306e\u672b\u5c3e\u306b\u4e0b\u8a18\u3092\u30b3\u30d4\u30fc\uff06\u30da\u30fc\u30b9\u30c8\u3067\u8ffd\u8a18\u3002<\/p>\n\n<pre><code class=\"language-bash\">if [ -f \/etc\/bash_completion.d\/git-prompt ]; then\n    export PS1='\\[\\033[01;32m\\]\\u@\\h\\[\\033[01;33m\\] \\w$(__git_ps1) \\n\\[\\033[01;34m\\]\\$\\[\\033[00m\\] '\nelse\n    export PS1='\\[\\033[01;32m\\]\\u@\\h\\[\\033[01;33m\\] \\w \\n\\[\\033[01;34m\\]\\$\\[\\033[00m\\] '\nfi<\/code><\/pre>\n<p>\u30d7\u30ed\u30f3\u30d7\u30c8\u304c\u4e0b\u8a18\u306e\u3088\u3046\u306b\u306a\u308b\u3002\u8272\u4ed8\u304d\u3002<\/p>\n<pre><code class=\"language-nohighlight\">user@user-Inspiron-3268 \/mnt\/ssd\/linux (android14-6.1-lts)\n$<\/code><\/pre>\n<p>git\u306e\u914d\u4e0b\u306b\u3044\u308b\u5834\u5408\u306f\u30d6\u30e9\u30f3\u30c1\u3084\u30bf\u30b0\u306a\u3069\u306e\u60c5\u5831\u304c\u304b\u3063\u3053\u5185\u306b\u8868\u793a\u3055\u308c\u308b\u3002<\/p>","tags":["Bash"]},{"title":"Manual Android kernel build with non-bazel\/build.sh way","date_published":"2025-05-17T23:50:00+09:00","id":"https:\/\/tm23forest.com\/contents\/manual-android-kernel-without-baze-build-sh","url":"https:\/\/tm23forest.com\/contents\/manual-android-kernel-without-baze-build-sh","content_html":"<p>How to manually build android kernel without standard bazel\/build.sh explained.<\/p>\n\n<h2>Introduction<\/h2>\n<p>As explained on <a href=\"https:\/\/source.android.com\/docs\/setup\/build\/building-kernels\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Build kernels<\/a>, Android kernel build is straight forward by using bazel\/build.sh. However, it's little bit cumbersome for those who are trying to build android kernel by regarding it as just one variation of linux kernel. This is because android kernel consists of kernel source tree and many other surrounding scripts. The purpose of these surrounding scripts to assure GKI concept, in one view. Due to this situation, it's hard to easily modify certain Kconfig configuration by hand. There is no \"menuconfig\" and other standard operation for linux kernel may not applied directly.<\/p>\n<h2>Preparation<\/h2>\n<p>To let build reproducible, I use docker image created by following Dockerfile.<\/p>\n<pre><code class=\"language-nohighlight\">FROM ubuntu:24.04\n\nRUN apt update &amp;&amp; apt install -y \\\n    make \\\n    clang \\\n    lld \\\n    llvm \\\n    git \\\n    bc \\\n    flex \\\n    bison \\\n    gawk \\\n    lz4 \\\n    cpio \\\n    xz-utils \\\n    libssl-dev \\\n    libelf-dev \\\n    libdw-dev \\\n    libc6-dev-amd64-cross \\\n    ncurses-dev \\\n    pahole<\/code><\/pre>\n<p>Most of packages are usually needed for linux kernel build but I tuned little bit for android kernel. The most significant point is to use clang, instead of using gcc. After saving above content as...<\/p>","tags":["Android","Linux"]},{"title":"Ubuntu\/Debian: \u30d5\u30a1\u30a4\u30eb\u304c\u5c5e\u3059\u308bpackage\u3092\u8abf\u3079\u308b","date_published":"2025-05-17T17:57:00+09:00","id":"https:\/\/tm23forest.com\/contents\/ubuntu-debian-what-package-a-file-belongs-to","url":"https:\/\/tm23forest.com\/contents\/ubuntu-debian-what-package-a-file-belongs-to","content_html":"<p>Dockerfile\u306bapt install\u3092\u66f8\u3044\u3066\u518d\u73fe\u53ef\u80fd\u306a\u30d3\u30eb\u30c9\u74b0\u5883\u3092\u69cb\u7bc9\u3057\u3066\u3044\u308b\u6700\u4e2d\u306b\u7279\u5b9a\u306e\u30d5\u30a1\u30a4\u30eb\u304c\u898b\u3064\u304b\u3089\u306a\u3044\u3068\u3044\u308f\u308c\u308b\u3053\u3068\u304c\u3042\u308b\u3002\u3053\u306e\u969b\u3001\u3069\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u8ffd\u52a0\u3059\u308c\u3070\u305d\u306e\u30d5\u30a1\u30a4\u30eb\u304cDocker\u30a4\u30e1\u30fc\u30b8\u306b\u8ffd\u52a0\u3067\u304d\u308b\u306e\u304b\u304c\u3059\u3050\u306b\u308f\u304b\u3089\u306a\u3044\u3002\u4f8b\u3048\u3070<code>\/usr\/x86_64-linux-gnu\/include\/stdc-predef.h<\/code>\u304c\u5b58\u5728\u3057\u306a\u3044\u3068\u3044\u3046\u30a8\u30e9\u30fc\u304c\u51fa\u529b\u3055\u308c\u305f\u969b\u306b\u3001<code>stdc<\/code>\u304b\u3089\u6a19\u6e96C\u30e9\u30a4\u30d6\u30e9\u30ea\u95a2\u9023\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u306a\u306e\u3060\u3068\u63a8\u6e2c\u306f\u3067\u304d\u308b\u304c\u5177\u4f53\u7684\u306a\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u628a\u63e1\u3057\u306a\u3044\u3068\u5148\u306b\u306f\u9032\u3081\u306a\u3044\u3002\u306a\u304a\u3001\u3053\u306e\u30d5\u30a1\u30a4\u30eb\u306f<code>build-essentials<\/code>\u306b\u306f\u542b\u307e\u308c\u306a\u3044\u3002<\/p>\n\n<h2>apt-file search\u3067\u8abf\u3079\u308b<\/h2>\n<p>Ubuntu\u3067\u306f<code>apt-file<\/code>\u3067\u8abf\u3079\u3089\u308c\u308b<\/p>\n<pre><code class=\"language-nohighlight\"># apt-file search \/usr\/x86_64-linux-gnu\/include\/stdc-predef.h\nlibc6-dev-amd64-cross: \/usr\/x86_64-linux-gnu\/include\/stdc-predef.h<\/code><\/pre>\n<h2>dpkg -S\u3067\u8abf\u3079\u308b<\/h2>\n<p>dpkg\u306f\u6a19\u6e96\u3067\u5165\u3063\u3066\u3044\u308b\u3002<\/p>\n<pre><code class=\"language-nohighlight\"># dpkg -S \/usr\/x86_64-linux-gnu\/include\/stdc-predef.h\nlibc6-dev-amd64-cross: \/usr\/x86_64-linux-gnu\/include\/stdc-predef.h<\/code><\/pre>\n<h2>dlocate\u3067\u8abf\u3079\u308b<\/h2>\n<p>dlocate\u3068\u3044\u3046\u30e9\u30c3\u30d1\u30fc\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u5229\u7528\u3059\u308b\u3002<\/p>\n<pre><code># sudo apt install dlocate\n# dlocate \/usr\/x86_64-linux-gnu\/include\/stdc-predef.h\nlibc6-dev-amd64-cross: \/usr\/x86_64-linux-gnu\/include\/stdc-predef.h<\/code><\/pre>\n<p>\u3053\u308c\u3067<code>apt install libc6-dev-amd64-cross<\/code>\u3067 <code>\/usr\/x86_64-linux-gnu\/include\/stdc-predef.h<\/code>\u304c\u7121\u3044\u3068\u3044\u3046\u30a8\u30e9\u30fc\u306f\u51fa\u306a\u304f\u306a\u308b\u3068\u308f\u304b\u308b\u3002<\/p>","tags":["Ubuntu"]}]}