From 40d179d4b4c5ff64364c67fddfc6e23869fa3cd9 Mon Sep 17 00:00:00 2001 From: ImLuJian <504439788@qq.com> Date: Sat, 8 Jul 2023 17:57:44 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E6=B7=BB=E5=8A=A0DRM=E5=90=AF=E5=8A=A8?= =?UTF-8?q?=E6=96=B9=E5=BC=8F=EF=BC=8C=E5=9C=A8VM=E8=99=9A=E6=8B=9F?= =?UTF-8?q?=E6=9C=BA=E4=B8=8A=E6=B5=8B=E8=AF=95=E4=BA=86=E4=B8=80=E4=B8=8B?= =?UTF-8?q?Ubuntu18.04=20Server=EF=BC=8C=E5=8F=AF=E4=BB=A5=E5=90=AF?= =?UTF-8?q?=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- demo/Semi.Avalonia.Demo.Desktop/App.axaml.cs | 5 +- demo/Semi.Avalonia.Demo.Desktop/Program.cs | 73 +++++++++++++++++-- .../Semi.Avalonia.Demo.Desktop.csproj | 1 + 3 files changed, 70 insertions(+), 9 deletions(-) diff --git a/demo/Semi.Avalonia.Demo.Desktop/App.axaml.cs b/demo/Semi.Avalonia.Demo.Desktop/App.axaml.cs index e70ba74..b534e3f 100644 --- a/demo/Semi.Avalonia.Demo.Desktop/App.axaml.cs +++ b/demo/Semi.Avalonia.Demo.Desktop/App.axaml.cs @@ -1,7 +1,6 @@ using Avalonia; using Avalonia.Controls.ApplicationLifetimes; using Avalonia.Markup.Xaml; -using Avalonia.Styling; using Semi.Avalonia.Demo.Views; namespace Semi.Avalonia.Demo.Desktop; @@ -16,9 +15,9 @@ public partial class App : Application public override void OnFrameworkInitializationCompleted() { if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) - { desktop.MainWindow = new MainWindow(); - } + else if (ApplicationLifetime is ISingleViewApplicationLifetime singleView) + singleView.MainView = new MainView(); base.OnFrameworkInitializationCompleted(); } } \ No newline at end of file diff --git a/demo/Semi.Avalonia.Demo.Desktop/Program.cs b/demo/Semi.Avalonia.Demo.Desktop/Program.cs index d42b109..59b34db 100644 --- a/demo/Semi.Avalonia.Demo.Desktop/Program.cs +++ b/demo/Semi.Avalonia.Demo.Desktop/Program.cs @@ -1,7 +1,9 @@ -using System; -using Avalonia; +using Avalonia; using Avalonia.Dialogs; using Avalonia.Media; +using System; +using System.Linq; +using System.Threading; namespace Semi.Avalonia.Demo.Desktop; @@ -11,8 +13,10 @@ class Program // SynchronizationContext-reliant code before AppMain is called: things aren't initialized // yet and stuff might break. [STAThread] - public static void Main(string[] args) => BuildAvaloniaApp() - .With(new FontManagerOptions + public static void Main(string[] args) + { + var builder = BuildAvaloniaApp(); + builder.With(new FontManagerOptions { FontFallbacks = new[] { @@ -21,8 +25,54 @@ class Program FontFamily = new FontFamily("Microsoft YaHei") } } - }) - .StartWithClassicDesktopLifetime(args); + }); + + //DRM启动步骤(Ubuntu18.04Server版本 虚拟机测试OK) + //官方文档:https://docs.avaloniaui.net/docs/next/guides/platforms/rpi/running-on-raspbian-lite-via-drm + + //1.Linux端运行命令 + //sudo apt update + //sudo apt upgrade + //sudo reboot + //sudo apt - get install libgbm1 libgl1 - mesa - dri libegl1 - mesa libinput10 + + //2.安装测试工具测试(出现一个彩色立方体说明环境安装完成) + //sudo apt-get install kmscube + //sudo kmscube + + //3.添加StartLinuxDrm代码 + + //4.发布程序,复制到Linux系统(安装.net,怎么运行这些省略) + //发布文件不要裁剪,如果裁剪会报错 + //Unhandled exception. Avalonia.Markup.Xaml.XamlLoadException: No precompiled XAML found for avares + //://Semi.Avalonia/Themes/Light/Light.axaml (baseUri: avares://Semi.Avalonia/Themes/Index.axaml), m + //ake sure to specify x:Class and include your XAML file as AvaloniaResource + + //5.运行 + + //运行报错点: + //Unhandled exception. System.TypeInitializationException: The type initializer for 'SkiaSharp.SKImageInfo' threw an exception. + //--->System.DllNotFoundException: Unable to load shared library 'libSkiaSharp' or one of its dependencies.In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: liblibSkiaSharp: cannot open shared object file: No such file or directory + //at SkiaSharp.SkiaApi.sk_colortype_get_default_8888() + //at SkiaSharp.SKImageInfo..cctor() + + //解决方法: + //Linux命令行安装一下 apt-get install -y libfontconfig1 + //网址:https://github.com/mono/SkiaSharp/issues/509 + + if (args.Contains("--drm")) + { + SilenceConsole(); + builder.StartLinuxDrm(args: args, card: "/dev/dri/card0", scaling: 1); + } + else + { + builder.StartWithClassicDesktopLifetime(args); + } + } + + + // Avalonia configuration, don't remove; also used by visual designer. public static AppBuilder BuildAvaloniaApp() @@ -31,4 +81,15 @@ class Program .UsePlatformDetect() .With(new Win32PlatformOptions()) .LogToTrace(); + + private static void SilenceConsole() + { + new Thread(() => + { + Console.CursorVisible = false; + while (true) + Console.ReadKey(true); + }) + { IsBackground = true }.Start(); + } } diff --git a/demo/Semi.Avalonia.Demo.Desktop/Semi.Avalonia.Demo.Desktop.csproj b/demo/Semi.Avalonia.Demo.Desktop/Semi.Avalonia.Demo.Desktop.csproj index 4e0ff0e..68489a2 100644 --- a/demo/Semi.Avalonia.Demo.Desktop/Semi.Avalonia.Demo.Desktop.csproj +++ b/demo/Semi.Avalonia.Demo.Desktop/Semi.Avalonia.Demo.Desktop.csproj @@ -23,6 +23,7 @@ + From 1b7c30c55756cdd044d73f373578d405913d9ab2 Mon Sep 17 00:00:00 2001 From: ImLuJian <504439788@qq.com> Date: Sun, 9 Jul 2023 09:24:41 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E6=B7=BB=E5=8A=A0DRM=E5=90=AF=E5=8A=A8demo?= =?UTF-8?q?=E5=92=8C=E4=BD=BF=E7=94=A8=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Semi.Avalonia.sln | 7 +++ demo/Semi.Avalonia.Demo.Drm/App.axaml | 14 +++++ demo/Semi.Avalonia.Demo.Drm/App.axaml.cs | 24 ++++++++ demo/Semi.Avalonia.Demo.Drm/Program.cs | 59 +++++++++++++++++++ .../Semi.Avalonia.Demo.Drm.csproj | 22 +++++++ demo/Semi.Avalonia.Demo.Drm/app.manifest | 18 ++++++ demo/Semi.Avalonia.Demo.Drm/使用方法.txt | 46 +++++++++++++++ 7 files changed, 190 insertions(+) create mode 100644 demo/Semi.Avalonia.Demo.Drm/App.axaml create mode 100644 demo/Semi.Avalonia.Demo.Drm/App.axaml.cs create mode 100644 demo/Semi.Avalonia.Demo.Drm/Program.cs create mode 100644 demo/Semi.Avalonia.Demo.Drm/Semi.Avalonia.Demo.Drm.csproj create mode 100644 demo/Semi.Avalonia.Demo.Drm/app.manifest create mode 100644 demo/Semi.Avalonia.Demo.Drm/使用方法.txt diff --git a/Semi.Avalonia.sln b/Semi.Avalonia.sln index a9245de..85b5a31 100644 --- a/Semi.Avalonia.sln +++ b/Semi.Avalonia.sln @@ -26,6 +26,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semi.Avalonia.ColorPicker", EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semi.Avalonia.Demo.Android", "demo\Semi.Avalonia.Demo.Android\Semi.Avalonia.Demo.Android.csproj", "{0C81FC1C-5D2D-478A-9876-923A0C85EC2F}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Semi.Avalonia.Demo.Drm", "demo\Semi.Avalonia.Demo.Drm\Semi.Avalonia.Demo.Drm.csproj", "{86D93406-412A-4429-93B2-92AAD0407784}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -61,6 +63,10 @@ Global {0C81FC1C-5D2D-478A-9876-923A0C85EC2F}.Debug|Any CPU.Deploy.0 = Debug|Any CPU {0C81FC1C-5D2D-478A-9876-923A0C85EC2F}.Release|Any CPU.ActiveCfg = Release|Any CPU {0C81FC1C-5D2D-478A-9876-923A0C85EC2F}.Release|Any CPU.Build.0 = Release|Any CPU + {86D93406-412A-4429-93B2-92AAD0407784}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {86D93406-412A-4429-93B2-92AAD0407784}.Debug|Any CPU.Build.0 = Debug|Any CPU + {86D93406-412A-4429-93B2-92AAD0407784}.Release|Any CPU.ActiveCfg = Release|Any CPU + {86D93406-412A-4429-93B2-92AAD0407784}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -70,6 +76,7 @@ Global {69A2C77D-6DB7-4AE4-B179-D1F5CF5E2DF0} = {43091528-9509-43CB-A003-9C5C11E96DD6} {D789AEDB-EBDF-4450-8E8E-B4A03FB257B0} = {43091528-9509-43CB-A003-9C5C11E96DD6} {0C81FC1C-5D2D-478A-9876-923A0C85EC2F} = {43091528-9509-43CB-A003-9C5C11E96DD6} + {86D93406-412A-4429-93B2-92AAD0407784} = {43091528-9509-43CB-A003-9C5C11E96DD6} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {7CA41ED3-2CED-40CC-AA21-28C3B42B1E86} diff --git a/demo/Semi.Avalonia.Demo.Drm/App.axaml b/demo/Semi.Avalonia.Demo.Drm/App.axaml new file mode 100644 index 0000000..40032b1 --- /dev/null +++ b/demo/Semi.Avalonia.Demo.Drm/App.axaml @@ -0,0 +1,14 @@ + + + + + + + + + \ No newline at end of file diff --git a/demo/Semi.Avalonia.Demo.Drm/App.axaml.cs b/demo/Semi.Avalonia.Demo.Drm/App.axaml.cs new file mode 100644 index 0000000..f436ee6 --- /dev/null +++ b/demo/Semi.Avalonia.Demo.Drm/App.axaml.cs @@ -0,0 +1,24 @@ +using Avalonia; +using Avalonia.Controls.ApplicationLifetimes; +using Avalonia.Markup.Xaml; +using Semi.Avalonia.Demo.Views; + +namespace Semi.Avalonia.Demo.Drm +{ + public partial class App : Application + { + public override void Initialize() + { + AvaloniaXamlLoader.Load(this); + } + + public override void OnFrameworkInitializationCompleted() + { + if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) + desktop.MainWindow = new MainWindow(); + else if (ApplicationLifetime is ISingleViewApplicationLifetime singleView) + singleView.MainView = new MainView(); + base.OnFrameworkInitializationCompleted(); + } + } +} \ No newline at end of file diff --git a/demo/Semi.Avalonia.Demo.Drm/Program.cs b/demo/Semi.Avalonia.Demo.Drm/Program.cs new file mode 100644 index 0000000..45d2f66 --- /dev/null +++ b/demo/Semi.Avalonia.Demo.Drm/Program.cs @@ -0,0 +1,59 @@ +using Avalonia; +using Avalonia.Dialogs; +using Avalonia.Media; +using System; +using System.Linq; +using System.Threading; + +namespace Semi.Avalonia.Demo.Drm +{ + internal class Program + { + // Initialization code. Don't use any Avalonia, third-party APIs or any + // SynchronizationContext-reliant code before AppMain is called: things aren't initialized + // yet and stuff might break. + [STAThread] + public static void Main(string[] args) + { + var builder = BuildAvaloniaApp(); + builder.With(new FontManagerOptions + { + FontFallbacks = new[] + { + new FontFallback + { + FontFamily = new FontFamily("Microsoft YaHei") + } + } + }); + if (args.Contains("--drm")) + { + SilenceConsole(); + builder.StartLinuxDrm(args: args, card: "/dev/dri/card0", scaling: 1); + } + else + { + builder.StartWithClassicDesktopLifetime(args); + } + } + + // Avalonia configuration, don't remove; also used by visual designer. + public static AppBuilder BuildAvaloniaApp() + => AppBuilder.Configure() + .UseManagedSystemDialogs() + .UsePlatformDetect() + .With(new Win32PlatformOptions()) + .LogToTrace(); + + private static void SilenceConsole() + { + new Thread(() => + { + Console.CursorVisible = false; + while (true) + Console.ReadKey(true); + }) + { IsBackground = true }.Start(); + } + } +} \ No newline at end of file diff --git a/demo/Semi.Avalonia.Demo.Drm/Semi.Avalonia.Demo.Drm.csproj b/demo/Semi.Avalonia.Demo.Drm/Semi.Avalonia.Demo.Drm.csproj new file mode 100644 index 0000000..e61daa9 --- /dev/null +++ b/demo/Semi.Avalonia.Demo.Drm/Semi.Avalonia.Demo.Drm.csproj @@ -0,0 +1,22 @@ + + + WinExe + net7.0 + enable + true + app.manifest + + + + + + + + + + + + + + + diff --git a/demo/Semi.Avalonia.Demo.Drm/app.manifest b/demo/Semi.Avalonia.Demo.Drm/app.manifest new file mode 100644 index 0000000..938919a --- /dev/null +++ b/demo/Semi.Avalonia.Demo.Drm/app.manifest @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + diff --git a/demo/Semi.Avalonia.Demo.Drm/使用方法.txt b/demo/Semi.Avalonia.Demo.Drm/使用方法.txt new file mode 100644 index 0000000..0e9445e --- /dev/null +++ b/demo/Semi.Avalonia.Demo.Drm/使用方法.txt @@ -0,0 +1,46 @@ +DRM启动步骤(Ubuntu18.04Server版本 虚拟机测试OK) +Avalonia官方参考文档:https://docs.avaloniaui.net/docs/next/guides/platforms/rpi/running-on-raspbian-lite-via-drm + +1.Linux端运行命令 + sudo apt update + sudo apt upgrade + sudo reboot + sudo apt - get install libgbm1 libgl1 - mesa - dri libegl1 - mesa libinput10 + +2.安装测试工具测试(出现一个彩色立方体说明环境安装完成) + sudo apt-get install kmscube + sudo kmscube + +3.安装.net运行时(参考网址:https://learn.microsoft.com/zh-cn/dotnet/core/install/linux?WT.mc_id=dotnet-35129-website) + +4.新建一个Avalonia项目,nuget里面添加Avalonia.LinuxFramebuffer包 + +5.添加StartLinuxDrm代码(不知道怎么添加看Semi.Avalonia.Demo.Drm项目代码) + +6.发布程序到Linux(安装.net,怎么运行这些省略) + +7.运行 ./Semi.Avalonia.Demo.Drm --drm + +报错处理: + +1.报错内容 + Unhandled exception. Avalonia.Markup.Xaml.XamlLoadException: No precompiled XAML found for avares + ://Semi.Avalonia/Themes/Light/Light.axaml (baseUri: avares://Semi.Avalonia/Themes/Index.axaml), m + ake sure to specify x:Class and include your XAML file as AvaloniaResource + 解决方法: + 如果使用Semi发布文件不要裁剪,如果裁剪会报错 + + +2.报错内容 + Unhandled exception. System.TypeInitializationException: The type initializer for 'SkiaSharp.SKImageInfo' threw an exception. + --->System.DllNotFoundException: Unable to load shared library 'libSkiaSharp' or one of its dependencies.In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: liblibSkiaSharp: cannot open shared object file: No such file or directory + at SkiaSharp.SkiaApi.sk_colortype_get_default_8888() + at SkiaSharp.SKImageInfo..cctor() +解决方法: + Linux命令行安装一下 apt-get install -y libfontconfig1 + 参考网址:https://github.com/mono/SkiaSharp/issues/509 + +3.报错内容 + Permission denied +解决方法: + sudo chmod +x ./Semi.Avalonia.Demo.Drm \ No newline at end of file From 112d1e3dd4292c9eb6df7a33f720bcec594e4d92 Mon Sep 17 00:00:00 2001 From: ImLuJian <504439788@qq.com> Date: Sun, 9 Jul 2023 09:52:28 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E8=BF=98=E5=8E=9Fdesktop=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E7=9A=84=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- demo/Semi.Avalonia.Demo.Desktop/App.axaml.cs | 4 +- demo/Semi.Avalonia.Demo.Desktop/Program.cs | 67 ++------------------ 2 files changed, 6 insertions(+), 65 deletions(-) diff --git a/demo/Semi.Avalonia.Demo.Desktop/App.axaml.cs b/demo/Semi.Avalonia.Demo.Desktop/App.axaml.cs index b534e3f..d5fe94a 100644 --- a/demo/Semi.Avalonia.Demo.Desktop/App.axaml.cs +++ b/demo/Semi.Avalonia.Demo.Desktop/App.axaml.cs @@ -15,9 +15,9 @@ public partial class App : Application public override void OnFrameworkInitializationCompleted() { if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) + { desktop.MainWindow = new MainWindow(); - else if (ApplicationLifetime is ISingleViewApplicationLifetime singleView) - singleView.MainView = new MainView(); + } base.OnFrameworkInitializationCompleted(); } } \ No newline at end of file diff --git a/demo/Semi.Avalonia.Demo.Desktop/Program.cs b/demo/Semi.Avalonia.Demo.Desktop/Program.cs index 59b34db..e011c45 100644 --- a/demo/Semi.Avalonia.Demo.Desktop/Program.cs +++ b/demo/Semi.Avalonia.Demo.Desktop/Program.cs @@ -13,10 +13,8 @@ class Program // SynchronizationContext-reliant code before AppMain is called: things aren't initialized // yet and stuff might break. [STAThread] - public static void Main(string[] args) - { - var builder = BuildAvaloniaApp(); - builder.With(new FontManagerOptions + public static void Main(string[] args) => BuildAvaloniaApp() + .With(new FontManagerOptions { FontFallbacks = new[] { @@ -25,54 +23,8 @@ class Program FontFamily = new FontFamily("Microsoft YaHei") } } - }); - - //DRM启动步骤(Ubuntu18.04Server版本 虚拟机测试OK) - //官方文档:https://docs.avaloniaui.net/docs/next/guides/platforms/rpi/running-on-raspbian-lite-via-drm - - //1.Linux端运行命令 - //sudo apt update - //sudo apt upgrade - //sudo reboot - //sudo apt - get install libgbm1 libgl1 - mesa - dri libegl1 - mesa libinput10 - - //2.安装测试工具测试(出现一个彩色立方体说明环境安装完成) - //sudo apt-get install kmscube - //sudo kmscube - - //3.添加StartLinuxDrm代码 - - //4.发布程序,复制到Linux系统(安装.net,怎么运行这些省略) - //发布文件不要裁剪,如果裁剪会报错 - //Unhandled exception. Avalonia.Markup.Xaml.XamlLoadException: No precompiled XAML found for avares - //://Semi.Avalonia/Themes/Light/Light.axaml (baseUri: avares://Semi.Avalonia/Themes/Index.axaml), m - //ake sure to specify x:Class and include your XAML file as AvaloniaResource - - //5.运行 - - //运行报错点: - //Unhandled exception. System.TypeInitializationException: The type initializer for 'SkiaSharp.SKImageInfo' threw an exception. - //--->System.DllNotFoundException: Unable to load shared library 'libSkiaSharp' or one of its dependencies.In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: liblibSkiaSharp: cannot open shared object file: No such file or directory - //at SkiaSharp.SkiaApi.sk_colortype_get_default_8888() - //at SkiaSharp.SKImageInfo..cctor() - - //解决方法: - //Linux命令行安装一下 apt-get install -y libfontconfig1 - //网址:https://github.com/mono/SkiaSharp/issues/509 - - if (args.Contains("--drm")) - { - SilenceConsole(); - builder.StartLinuxDrm(args: args, card: "/dev/dri/card0", scaling: 1); - } - else - { - builder.StartWithClassicDesktopLifetime(args); - } - } - - - + }) + .StartWithClassicDesktopLifetime(args); // Avalonia configuration, don't remove; also used by visual designer. public static AppBuilder BuildAvaloniaApp() @@ -81,15 +33,4 @@ class Program .UsePlatformDetect() .With(new Win32PlatformOptions()) .LogToTrace(); - - private static void SilenceConsole() - { - new Thread(() => - { - Console.CursorVisible = false; - while (true) - Console.ReadKey(true); - }) - { IsBackground = true }.Start(); - } } From 201610b9ab5c90e4dabae16ac66f4279dd8f51e1 Mon Sep 17 00:00:00 2001 From: rabbitism Date: Sun, 9 Jul 2023 23:03:11 +0800 Subject: [PATCH 4/5] feat: update references. --- .../Semi.Avalonia.Demo.Desktop.csproj | 1 - demo/Semi.Avalonia.Demo.Drm/App.axaml | 13 +++++---- .../{使用方法.txt => 使用方法.md} | 27 +++++++++++-------- 3 files changed, 22 insertions(+), 19 deletions(-) rename demo/Semi.Avalonia.Demo.Drm/{使用方法.txt => 使用方法.md} (59%) diff --git a/demo/Semi.Avalonia.Demo.Desktop/Semi.Avalonia.Demo.Desktop.csproj b/demo/Semi.Avalonia.Demo.Desktop/Semi.Avalonia.Demo.Desktop.csproj index 68489a2..4e0ff0e 100644 --- a/demo/Semi.Avalonia.Demo.Desktop/Semi.Avalonia.Demo.Desktop.csproj +++ b/demo/Semi.Avalonia.Demo.Desktop/Semi.Avalonia.Demo.Desktop.csproj @@ -23,7 +23,6 @@ - diff --git a/demo/Semi.Avalonia.Demo.Drm/App.axaml b/demo/Semi.Avalonia.Demo.Drm/App.axaml index 40032b1..d4ceb6d 100644 --- a/demo/Semi.Avalonia.Demo.Drm/App.axaml +++ b/demo/Semi.Avalonia.Demo.Drm/App.axaml @@ -2,13 +2,12 @@ x:Class="Semi.Avalonia.Demo.Drm.App" xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" - xmlns:local="using:Semi.Avalonia.Demo.Desktop" RequestedThemeVariant="Light"> - - - - - - + + + + + + \ No newline at end of file diff --git a/demo/Semi.Avalonia.Demo.Drm/使用方法.txt b/demo/Semi.Avalonia.Demo.Drm/使用方法.md similarity index 59% rename from demo/Semi.Avalonia.Demo.Drm/使用方法.txt rename to demo/Semi.Avalonia.Demo.Drm/使用方法.md index 0e9445e..efe659a 100644 --- a/demo/Semi.Avalonia.Demo.Drm/使用方法.txt +++ b/demo/Semi.Avalonia.Demo.Drm/使用方法.md @@ -1,4 +1,7 @@ -DRM启动步骤(Ubuntu18.04Server版本 虚拟机测试OK) +# DRM启动步骤 + +(Ubuntu18.04Server版本 虚拟机测试OK) + Avalonia官方参考文档:https://docs.avaloniaui.net/docs/next/guides/platforms/rpi/running-on-raspbian-lite-via-drm 1.Linux端运行命令 @@ -21,26 +24,28 @@ Avalonia官方参考文档:https://docs.avaloniaui.net/docs/next/guides/platfo 7.运行 ./Semi.Avalonia.Demo.Drm --drm -报错处理: +## 报错处理: + +1. 报错内容 + +>Unhandled exception. Avalonia.Markup.Xaml.XamlLoadException: No precompiled XAML found for avares://Semi.Avalonia/Themes/Light/Light.axaml (baseUri: avares://Semi.Avalonia/Themes/Index.axaml), make sure to specify x:Class and include your XAML file as AvaloniaResource -1.报错内容 - Unhandled exception. Avalonia.Markup.Xaml.XamlLoadException: No precompiled XAML found for avares - ://Semi.Avalonia/Themes/Light/Light.axaml (baseUri: avares://Semi.Avalonia/Themes/Index.axaml), m - ake sure to specify x:Class and include your XAML file as AvaloniaResource 解决方法: 如果使用Semi发布文件不要裁剪,如果裁剪会报错 -2.报错内容 - Unhandled exception. System.TypeInitializationException: The type initializer for 'SkiaSharp.SKImageInfo' threw an exception. - --->System.DllNotFoundException: Unable to load shared library 'libSkiaSharp' or one of its dependencies.In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: liblibSkiaSharp: cannot open shared object file: No such file or directory +2. 报错内容 +>Unhandled exception. System.TypeInitializationException: The type initializer for 'SkiaSharp.SKImageInfo' threw an exception.** + **--->System.DllNotFoundException: Unable to load shared library 'libSkiaSharp' or one of its dependencies.In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: liblibSkiaSharp: cannot open shared object file: No such file or directory at SkiaSharp.SkiaApi.sk_colortype_get_default_8888() at SkiaSharp.SKImageInfo..cctor() + 解决方法: Linux命令行安装一下 apt-get install -y libfontconfig1 参考网址:https://github.com/mono/SkiaSharp/issues/509 -3.报错内容 - Permission denied +3. 报错内容 +>Permission denied + 解决方法: sudo chmod +x ./Semi.Avalonia.Demo.Drm \ No newline at end of file From db7f199003d74565fdb05733541750a0336f139c Mon Sep 17 00:00:00 2001 From: rabbitism Date: Sun, 9 Jul 2023 23:06:08 +0800 Subject: [PATCH 5/5] fix: fix version reference. --- demo/Semi.Avalonia.Demo.Drm/Semi.Avalonia.Demo.Drm.csproj | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/demo/Semi.Avalonia.Demo.Drm/Semi.Avalonia.Demo.Drm.csproj b/demo/Semi.Avalonia.Demo.Drm/Semi.Avalonia.Demo.Drm.csproj index e61daa9..7accf7a 100644 --- a/demo/Semi.Avalonia.Demo.Drm/Semi.Avalonia.Demo.Drm.csproj +++ b/demo/Semi.Avalonia.Demo.Drm/Semi.Avalonia.Demo.Drm.csproj @@ -9,10 +9,10 @@ - + - - + +