2020-07-18

Запуск Linux под Android без регистрации и SMS

Давно интересуюсь темой запуска Линукс программ на мобильных устройствах. Все дело в том, что мобильные прогаммы по функционалу сильно проигрывают своим компьютерным аналогам, в то же время современные мобильники имеют железо, которое, по вычислительной мощности лишь незначительно уступает железу персональных компьютеров, а иногда, даже, в чем то у него выигрывает. Почему же я не могу запустить дескопное приложение на мобильном устройстве?

Оказывается, это вполне возможно, правда требует определенного погружения в тему и подходит далеко не всем. Последнее время ситуация значительно улучшилась - уже не нужно перепрошивать железо, получать рут доступ и тому подобное, можно обойтись минимальным набором программ из Google Play.

Необходимое железо

Прежде всего понадобится подходящий телефон с Android. Не все устройства подойдут, так как различные телефоны работают с разными типами процессоров, данный метод сработает если у вас 64 битный ARM процессор. На 32 битных устройствах нужно использовать 32 битный образ Linux.

Желательно использовать физическую клавиатуру и мышь. Работать с програмной клавиатурой можно, но некоторые клавиши типа табуляции и стрелок отсутствуют на виртуальной клавиатуре, поэтому я предпочитаю физическую, благо большинство Bluetooth клавиатур прекрасно работают с Android.

Я использую раскладную клавиатуру с тачпадом - все же мобильное устройство должно оставаться мобильным и не занимать много места. Хотя на раскладной клавиатуре работать немного непривычно, возможно, у меня просто неправильная клавиатура.

Переключение языков по умолчанию происходит комбинацией Contol+Space как на Макинтош. Для этого в настройках Android нужно настроить дополнительные языки для физической клавиатуры.

Необходимые программы

Для полноценного запуска Линукс нам потребуются две программы:

  • Termux - эмулятор Linux под андроид.
  • XServer XSDL - реализация X Server для Андроид.
Установка Linux

В Termux выполняем следующие команды чтобы скачать образ Fedora:


pkg install wget

wget https://raw.githubusercontent.com/nmilosev/termux-fedora/master/termux-fedora.sh

sh ./termux-fedora.sh f32_arm64

startfedora

Если все скачалось успешно вы окажетесь в командрой строке Fedora и получите доступ ко всем программам экосистемы под платформу на процессорах ARM.

Обновим систему и поставим необходимые программы:


dnf update

#установим xfce:
dnf install @xfce 

#программы по вкусу, список можно расширить:
dnf instll mc gimp audacity

Следует отметить что приведенные выше команды скачивают порядка пятисот мегабайт данных и после установки займут раза в три больше места, поэтому перед их вызовом убедитесь, что обладаете достаточным объемом памяти на устройстве.

 

Запускаем XServer XSDL ждем когда появится синий экран с приглашением

	 
export DISPLAY=192.168.0.178:0 PULSE_SERVER=tcp:192.168.0.178:473 

startxfce4 &

Если все установилось нормально то в X Server вы увидите оконный менеджер и сможете запускать GUI программы.

Доступ к файлам устройства.

Файлы устройства видны по адресу /storage/emulated/0 - это не удобно так как родительские папки без доступа на чтение и из GUI программ туда не всегда получается пробраться - проблема решается созданием символической ссылки


ln -s /storage/emulated/0 /mnt/storage

Проблемы

Что пока не работает: звук пока мне не удалось заставить работать - хотя поддержка, вроде бы, заявлена.

Популярные браузеры не запустились. Ни Хромиум ни Firefox запускаться не захотели.

Поскольку пользователь в графическом окружении федоры пользователь оказывается под root, некоторые программы отказываются работать из под рута.

Так что, до полнеценной работы на мобильнике как на лаптопе еще далеко, но, прогресс определенно уже есть. Возможно, через некотрое время нам уже не нужно будет повсюду таскать лаптоп а можно будет обходиться одним мобильным телефоном.

 

Оставить комментарий

 
  2020-07-15

Заполнение 3-НДФЛ

Понадобилось заполнить налоговую декларацию 3-НДФЛ. Стал смотреть как это сделать не посещая матушку Россию. Сделать это, конечно, можно через сайт налоговой инспекции. На первый взгляд операция выглядит несложно - заполняешь форму, прилагаешь документы, отправляешь. Но, дьявол, как всегда, кроется в деталях.

Для заполнения декларации настоятельно рекомендуется пользоваться специальной программой. На сайте налоговой такая программа есть, и ее достаточно легко скачать.

Вроде бы простая программа, с которой не должно возникнуть никаких проблем, но почему же пользование ей это такая это боль? 

Работает эта программа, разумеется, только под отечественной операционной системой Microsoft Windows. Пользователи Linux и Mac оказываются неудел. При первом запуске интерфейс программы на обоих моих компьютерах оказался с крякозябрами трех разных видов. Чтобы это исправить пришлось настроить систему на работу с кириллицей, возможно у большинства обычных пользователей такой проблемы не возникнет, благо проблема решаемая.

Другой неприятной особенностью для меня стал тот факт, что справочники не имеют поиска по содержимому. Попробуйте, скажем, найти категорию "продажа автотранспорта" в программе за 2018 год. Особой пикантности добавляет тот факт что такой там такой категории нет - нужно выбирать "иное". А вот в версии за 2019 год такая категория уже есть.

При этом, на каждый год программа для расчета налога своя, обратной совместимости нет, и если хотите заполнить декларацию за 2018 год, то об этом вы узнаете только заполнив все данные в программе за 2019! Почему нельзя было сделать совместимость с предыдущими версиями непонятно совершенно.

Отдельно заслуживает внимания тот факт, что почему-то в обоих версиях модуль печати вынесен в отдельную программу его нужно устанавливать отдельно из системной папки. Я ведь продвинутый пользователь, но даже для меня взаимодействие с государственными органами это боль...

При этом, можно сохранить данные в одной программе и открыть в программе за предыдущий год, но сохраняются при этом только совсем немногие поля и все равно придется все заполнять большинство полей заново.

И вот, декларация заполнена, pdf файл сохранен на диске, осталось его отправить.  Захожу в личный кабинет, и не нахожу формы куда можно загрузить готовый файл!

Оказывается, если собираешься загружать декларацию онлайн, то и заполнять её нужно было онлайн! При этом онлайн форма вроде бы более человеческая, но все равно кривая в некоторых местах. Чтобы попасть на нее нужно сгенерить некий ключ, что за ключ из описания непонятно, но предупредят, что его генерация занимает от тридцати минут до суток, видимо так сделано, чтобы клиент проникся всей важностью этой операции. Впрочем, когда я перегрузил страницу все было уже "сгенерировано".

Онлайн заполнение оказалось попроще. Справочники здесь оказались с автопоиском. Полей для заполнения меньше. С третьей попытки удалось заполнить форму и успешно ее отослать.

В общем, коммуникация с налоговыми органами это совершенно особое удовольствие, но, к сожалению, без него не обойтись.

 

Оставить комментарий

 
  2020-06-21

Особенности TTGO T-Call ESP32 SIM800L

Продолжаю изучать отладочную плату TTGO T-Call ESP32 SIM800L. Несколько недоумеваю по поводу используемых портов. У ESP32 есть три аппаратных UART при этом нa плате для соединения ESP32 с SIM800 используются выходы 26 и 26 на которых аппаратного UART нету! То есть, заместо аппаратного нужно использовать программный UART который хуже по определению! При этом эти ноги еще выведены на гребенку платы - зачем, если использовать их уже нельзя?

Может я чего не понимаю... При этом, кроме UART0 используемый при программировании устройства больше больше ног поддерживающих аппаратный UART не выведено. Очень странное решение...

Порты, которые использовать нельзя - выведены наружу, а те что можно и нужны - нет. При этом две ноги не подключены вообще ни к чему и еще есть аж целых три ноги для земли. Очень странное решение, но, как говориться, чем богаты...

 

Оставить комментарий

 
  2020-06-21

Тайный сыск царя Гороха

У Андрея Белянина есть цикл книжек "Тайный сыск Царя Гороха".

Попаданецем из нашего мира в мир сказочный оказывается обычный участковый, от лица которого и ведется повествование. Сказочный мир выглядит как лубочная древняя русь десятого века, в виде города Лукошкино. А правит в этом городе царь Горох - мудрый правитель и в тоже время самодур и тиран. Так как делать ничего кроме работы участкового главные герой не умеет, то оказывается он в единственном в Лукошкино участковым милиционером. Впрочем участковый милиционер в сказке фигура очень даже востребованная - ведь злодеи не дремлют - так и наровят навредить, нагадить в сказочной Руси. Со временем из простого участкового становится наш герой целым учачастковым воеводой, кототорому и предстоит расследовать преступления в этом сказочном мире.

Ожидаемо самым опастным преступником тут окажется Кощей Бессмертный. Помогать в расследованиях будут Баба Яга и другие сказочные герои.

Такое вот сказочое фэнтези.

Если вас не смущает наличие Украины, Австрии и Германии и Польши в десятом веке нашей эры, если лубок не режет глаз, то чтиво может оказаться вполне годным.

 

Оставить комментарий

 
  2020-05-08

Посылаем данные в облако через мобильную сеть

Пришел интересный модуль - TTGO T-Call ESP32 SIM800L.

По сути это ESP-32 Wrover соединенный с модулем SIM800L который умеет работать с 2G сетями. С 3G уже не умеет, но это и не нужно если объем передаваемых данных не велик.

Залил тестовую прошивку, найденную у RandomNerd предварительно адаптировав ее для работы https://requestbin.com/.

И ура! Теперь я могу посылать данные по GPRS!

Тестовый скетч залил на Github.

 

Оставить комментарий

 
  2020-04-29

Сделал постинг блога в Телеграм

Пользуясь временем, предоставленным нам на карантине, сделал постинг блога в Телеграм.

Давно хотел это сделать, но на это было нужно значительно больше времени и желания чем я располагал.

И вот короновирус, заставивший людей сидеть дома, подарил мне такую возможность.

Встречайте: телеграм канал, привязанный к этому сайту: https://t.me/maxistar_site_channel

 

Оставить комментарий

 
  2020-04-25

Аудиокнижки

Нашел на Youtube кучу аудиокниг - зачем кто-то выкладывает аудио книги на ютуб, да еще без монетизации я не знаю, но факт они там есть.

А значит будем слушать, фоном очень хорошо идет.

 

Оставить комментарий

 
  2020-04-22

Уведомление о наличии ВНЖ

Известно, что если вы решили уехать на постоянное место жительство в другую страну, в России необходимо об этом уведомить ФМС по месту жительства. Встал вопрос где найти нужную форму для заполнения. Поиск в сети оказался нетривиальным. В основном попадаются формы в формате Microsoft Word, а у меня на компьютере стоит Linux а ставить Microsoft Word ради одной формочки как то слишком. 

Вроде бы нужная форма есть в Гаранте но как ее заполнить? Похоже в ее верстали еще в во времена Лексикона - сейчас такого софта уже не достать.

В результате потратил почти целый день на поиск формы в подходящем формате.

Если вдруг кому надо - выкладываю форму сюда.  

Многие ругают немецкую бюрократию, но по сравнению с российской немецкая бюрократия гораздо проще и понятнее. По крайней мере в Берлине все формы есть на сайтах соответсвуюших министерств в формате pdf их легко найти и заполнить.

 

Оставить комментарий

 
  2020-04-22

Подсветка светодиодной лентой WS2812b - продолжение

Решил спаять новое устройство на смену временной макетной плате, которая стоит на шкафу и пылиться.

Новая плата чуть менее временная, но все равно макетка:

Сказано сделано - спаял новое устройство. Однако, работать оно поначалу не захотело.

Сначала при включении светодиоды начинали хаотически мигать. Опытным путем было установлено, что эффект проявлялся только если напряжение питания модуля 3.33 вольта и ниже. Если повысить напряжение до 3.5 вольт все начало работать нормально. Видимо, пятивольтовая логика ленты WS2812b не совместима с 3.33 вольтовой логикой ESP32. По идее нужен преобразователь уровня.

В определенный момент всплыл другой глюк. Опять стали подмигивать отдельные светодиоды. Стал искать причину. Выяснилось следующее: из-за того, что новая плата у меня ESP 32 Wroom а не ESP 32 Cam при заливке прошивки я выбрал другой тип платы - ESP32 Dev Board с частотой 120MГц. Раньше прошивал с настройками для ESP32 Wroover на 80МГц и на 40МГц. Интересно, что система прошилась нормально, а вот лента стала странно подмигивать. При этом эффект уже не зависел от напряжения питания. Вернул предыдущие настройки - все стало опять хорошо.

И вот устройство стоит, лампочки мигают, казалось бы все хорошо. Однако через некоторое время устройство перестает отзываться по Wifi. При этом оне не зависает, нет - выбранный световой эффект продолжает работать - просто устройство отказывается открываться по сети. Лекарство пока не нашел, хотя есть несколько предположений, почему это происходит.  В новой прошивке есть возможность отключать энергосбережение WiFi - предполагается это может решить проблему. Так ли это - посмотрим.

Upd: с вайфаем получилось интересно. Перепробовал разное - и понижать напряжение питания, и включать специальный флаг, чтобы чип не переходил в режим энергосбережения - такое есть в последней прошивке - все равно через некоторое время устройство переставало отвечать на запросы, хотя и продолжало работать - по таймеру эффекты продолжали стабильно запускаться. И вот, вчера, попробовал на роутере переключить канал с четвертого на восьмой - домашние жаловались, что у них плохо работает интернет. И вот уже второй день устройство нормально отзывается по сети. Что это такое я пока не понял, но корреляция определенно тут есть.

Upd2: переключил на роутере WiFi на другой канал, так как домашние жаловались не нестабильную связь - зависания устройства сразу прекратились.

Upd3: Написал более подробную статью про освещение светодиодной лентой, статья пока в разработке, но уже из нее можно многое почерпнуть про изготовление устройства.

 

Оставить комментарий

 
  2020-04-20

Вычислить n знаков числа Пи

В Твиттере Раймонда Хеттингера был интересный твит - вычисление n знаков числа Пи - на Питоне.

Стало интересно как записать это на JavaScript. Сказано - сделано:


function pi(places) {
    const extra = 8;

    const pow = function(number, power) {
        result = number;
        for(let i = 0; i < power; i++) {
            result *= number;
        }
        return result;
    }

    const one = pow(BigInt(10), places + extra)
    let t = BigInt(3) * one;
    let c = BigInt(3) * one;
    let n = BigInt(1);
    let na = BigInt(0);
    let d = BigInt(0);
    let da = BigInt(24);
    while (t > 1) {
        n = n + na;
        na = na + BigInt(8);
        d = d + da;
        da = da + BigInt(32);
        t = (t * n / d);
        c += t;
    }
    return (c / pow(BigInt(10), extra))
}

console.log(pi(100)) //3141592653589793238462643383279502884197169399375105820974944592307816406
                     //2862089986280348253421170679

Занятно было посмотреть как работают вычисления в BigInt - если результатом деления двух Int в JavaScript будет Float то результатом деления двух BigInt будет тоже BigInt. При этом нельзя использовать Math.pow для возведения в степень - результатом Math.pow оказывается Number и точность вычислений заметно теряется. Поэтому пришлось делать свою функцию pow c n умножений. Как сделать лучше пока не придумал.

Как мы видим работать с int64 на Питоне значительно проще - Javascript тут значительно проигрывает.

 

Коментариев: 1